Focus (was Re: draft proposal for Sum Types for D)

John Colvin john.loughran.colvin at gmail.com
Sat Dec 3 16:17:19 UTC 2022


On Tuesday, 29 November 2022 at 06:26:20 UTC, Walter Bright wrote:
> Go ahead, Make My Day! Destroy!
>
> https://github.com/WalterBright/DIPs/blob/sumtypes/DIPs/1NNN-(wgb).md

I don’t want to be discouraging of good work, but D is not 
lacking in great features, it is lacking in its implementation of 
the basics.

I have come to believe over several years working in D, managing 
work in D at some scale (10s of devs, not 100s) & advocating for 
D that the foundations are shaky and crumbly and need work.

While it is not possible to implement a struct as drop-in 
replacement for a built in slice, while template symbol emission 
bugs keep happening[1], while the built in AAs are not in great 
shape (and the signature of toHash is a PITA), while the compiler 
is a huge memory hog and compile times for templates get wild, 
while speculative compilation results somehow go wrong and leak 
in to the non-speculative parts of compilation (e.g. 
https://issues.dlang.org/show_bug.cgi?id=19545), while syntax 
changes happen without enough noise (so even basic tooling ends 
up breaking), while shared and property and synchronised classes 
and so on sit in poor and/or incomplete shape, while delegate 
contexts still have qualifier problems[2]…

Why would the limited resources available be focused on a 
built-in sum type?

D is an amazing language. “Another killer feature” isn’t the 
missing piece to it getting some real, persistent, large-scale 
traction. They key is the rock solid basics and the cleaning up 
of lingering nonsense. Then the features can come, if they need 
to, because everyone loves building features and the more the 
basics are sorted out the easier it will be to add more.

*The really committed and talented people here need to choose 
quality and build it.*

I think D has a culture of accepting all sorts of badness while 
promising greatness, which is self-limiting.

I have poured a unbelievable number of hours in to D over the 
years, both commercially and open source, it has formed the 
backbone of my career, I want to see it succeed, but this *will 
not happen* if the basics are not dealt with.

I’m happy talk more about this with any of the core developers, I 
may not write a lot more out here as I don’t want to keep ladling 
on negativity in public, but for a variety of reasons I think 
change is needed.

[1] please no “where’s the bug report”, it’s whackamole. There 
needs to be a reckoning with the fundamental nature of the 
problem. Does *anyone* even understand the current design & 
implementation?

[2] this is pretty much what I could think of off the top of my 
head. I’m sure there’s more!


More information about the Digitalmars-d mailing list