Why is D unpopular, redux.

FeepingCreature feepingcreature at gmail.com
Tue May 24 06:17:38 UTC 2022


On Tuesday, 24 May 2022 at 05:22:48 UTC, Ola Fosheim Grøstad 
wrote:
> On Tuesday, 24 May 2022 at 02:04:34 UTC, Basile B. wrote:
>> You finally ends up with testimonials from experts but in the 
>> end you still dont really know why mr rookie gave D up.
>
> Overall the signal from beginners that did not give up early 
> appears to be IDE and libraries. From experienced beginners the 
> signal is inconsistencies and unusual choices. From nonhardcore 
> the signal is lack of stability. From hardcore the signal is 
> incompleteness.
>

Actually, I want to jump on this, because I think it's really 
important, and it's a core argument from my perspective for why D 
should have macros.

Note: Speaking from an unabashed late-intermediate perspective.

Most languages have this sort of pipeline:

[beginners] -> [experienced beginners] -> [intermediates] -> 
[hardcore]

[code for own use] -> [code libraries] -> [utility libraries] -> 
[language improvements]

It sometimes feels like D has this pipeline:

[code for own use] -> [libraries] -> [clever metaprogramming 
libraries] -> [I'll make my own language!]

And that's an issue! Because people tend to fall off the end of 
the development pipeline right when they're the most useful. 
There's what, five languages that started from D? Amber, Volt, 
Symmetry's fork (?), my own Neat... It's gotten less with D2, but 
I feel the combination of limitations at the high end of utility 
libraries and the lack of truly deep language expansion on the 
one hand, the slow, somewhat opaque, and arguably 
criticism-driven DIP process on the other, and the, charitably, 
somewhat impenetrable DMD codebase on the third, risks alienating 
people when they'd be the most useful to the project.

With something like C++ I ironically think that's less of an 
issue because there's "more to learn" at the high end. I think 
people rarely feel like they've plateaued in how far they can 
take the language, because they get so stuck in their awkward 
templates that even gradual improvements feel like victories. Or 
with simpler languages, like Node, it's easier to make a case 
that what's there is complete, from a language perspective. But 
because D is both powerful and comprehensible, you reach "the 
end", understand it, and you see that there's nowhere else to go 
except either braving the feature proposal process and the 
hostility of half the forum, or go elsewhere.

To be clear, losing people at any stage of the pipeline is bad 
for a language. But I think losing people at the end has unique 
costs in terms of proselytizing and advancement.


More information about the Digitalmars-d mailing list