D has become unbearable and it needs to stop
Johan
j at j.nl
Thu Jun 8 17:20:25 UTC 2023
On Thursday, 8 June 2023 at 13:54:53 UTC, FeepingCreature wrote:
> On Thursday, 8 June 2023 at 13:38:20 UTC, GrimMaple wrote:
>> I usually try to stay more silent (on the form at least), but
>> I think I reached my boiling point. I've been a (self
>> employed) full time D developer for almost 2 years now,
>> developing quite a large codebase of personal closed source
>> projects, as well as adopting some 3rdparty code like dlangui.
>> And my life has become particularly miserable in the last half
>> a year or so.
>>
>> I wish I was exaggerating, but __every__ new DMD version
>> breaks some of my code, to a smaller or bigger extent.
>
> 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.
Can 100% confirm (Weka), and I share the frustration. Breakage
happens upon every release, with significant effort involved to
find and fix the breakage (i.e. you hire a compiler dev for it =
me).
Breakage is due to:
- Intentional change of behaviour, sometimes without clear
solution path or with buggy solutions.
https://issues.dlang.org/show_bug.cgi?id=23966 and 23977 for
recent examples.
- New bugs due to some improvement or new functionality.
I'm not sure, but I think this is mostly due to a severe lack of
rigorous test cases, and unstructured compiler implementation (no
splitting of certain analyses into well-defined functions
(copying around of complex analysis) and too many special cases
all around the semantic analysis for example). A change made in
part X, has high likelihood to change behaviour of a seemingly
unrelated part Y, and the lack of test cases means it will go
undetected.
The breakneck pace of releases means that the releases themselves
do not get sufficient community testing (who tests betas?? lol,
I'm still working on fixing the code for the release from last
year). So every release is maintaining the level of immaturity
(note: .0 releases I don't even consider, .1 or .2 (what LDC
uses) is slightly better).
-Johan
More information about the Digitalmars-d
mailing list