The forked elephant in the room

DrDread DrDread at cheese.com
Thu Jan 18 11:14:19 UTC 2024


On Tuesday, 16 January 2024 at 20:07:08 UTC, Walter Bright wrote:
> In general, we've been much more willing to accept PRs that we 
> can back out of if they don't turn out well.
>
> For example, improvements to debug support, better code 
> generation, stdatomic.d, fixing bugs, adding statistics to 
> dmd's output, things like that.
>
> Language changes, though, have a much higher bar. The risk 
> there is people rely on it, and then we're stuck with it 
> forever.
>
> For example, `alias this` for classes. The semantics of it were 
> never defined properly, and with many attempts at figuring what 
> the correct semantics must be, never found one that anybody 
> could defend. Worse, many people were using it for classes, and 
> and relied on whatever the compiler did for it.
>
> Hence, we did not want to deprecated it. Instead, we froze its 
> current behavior, and I opposed any further additions to it 
> and/or attempts to fix it. All I can do is just recommend 
> people not use `alias this` in classes.
>
> Rikki's proposal to do UAX31 identifiers I was initially 
> opposed to, but upon reflection realized there was more risk in 
> not doing it than doing it, and so full speed ahead, Rikki!

and this is also a problem. you leave bad features in the 
language that turned out to not work proberly, instead of just 
deprecating them.
people don't mind breaking code as much as you think, as long as 
it doesn't silently break. D doesn't have the adoption rate where 
not breaking code is justified in any way.


More information about the Digitalmars-d mailing list