D has become unbearable and it needs to stop

FeepingCreature feepingcreature at gmail.com
Thu Jun 8 14:44:03 UTC 2023


On Thursday, 8 June 2023 at 14:33:57 UTC, GrimMaple wrote:
> On Thursday, 8 June 2023 at 13:54:53 UTC, FeepingCreature wrote:
>> Can't confirm. Can you give some examples, please? In my 
>> experience (and we maintain a lot of D code), serious *new* 
>> breakage (not an existing bug) is pretty rare.
>>
>> To be fair, we don't use that many external libs though.
>
> 2.104 deprecated `ref in`, this changes function signatures 
> (Adam was particularly displeased with having to push breaking 
> changes).
> 2.103 deprecated `alias this` on classes, which resulted in 
> complete code breakage. This lad 
> https://github.com/FreeSlave/icontheme/issues/2 even refused to 
> do anything about it.
> 2.102 deprecated `__traits(getAttributes)`. Somebody complained 
> about this, but I can't remember who exactly. Probably Adam 
> again.
> 2.101 removed `std.xml`, which led to a significant rewrite of 
> dlangui, which inevitably led to me leaving D (even though 
> temporarily). And no, `undeaD` maintainers refused to fix my 
> problems: https://github.com/dlang/undeaD/pull/54 , 
> https://github.com/buggins/dlangui/issues/643 (tl;dr undeaD 
> doesn't work with GDC)
>
> Other versions go too far back for my memory

Yeah I somehow managed to completely avoid those, I guess.

Re std.xml, I'd probably have just vendored the entire module.

Re alias this on classes, we weren't using that anywhere, but 
"alias this" is always a nice-to-have anyways. You can always 
just access the property manually. Annoying but not crippling.

`__traits(getAttributes)` isn't deprecated, 
`__traits(getAttributes)` on overloads is deprecated because it 
was just plain broken. This only ever worked as a side effect of 
DMD compiler internals, ie. overloads being a linked list in 
functions.

`ref in` I just dodged outright. We just never use ref.


More information about the Digitalmars-d mailing list