Why is D unpopular?

rumbu rumbu at rumbu.ro
Mon Nov 8 08:07:54 UTC 2021


On Tuesday, 2 November 2021 at 17:27:25 UTC, Dr Machine Code 
wrote:
> It got [asked on 
> reddit](https://www.reddit.com/r/d_language/comments/q74bzr/why_is_d_unpopular/) sub but for those that aren't active too, I'd like you opinions. Please don't get me wrong, I also love D, I've used it everywhere I can and I'd say it's my favourite language (yes I have one...) but I'm as as the reddit's OP, trying to understand why it's unpopular. Rust and Go seeming to be getting more and more users. I think it's due to large ecosystem and the big corporations with deep pockets that pushes them. But I'd like to know you all opinions

First of all I will separate the language itself from the 
standard library.

One of the big mistakes - in my opinion - was the involvement of 
language maintainers in the standard library design which is a 
very different animal. Language maintainers must provide the 
minimal blocks in the standard library and let the crowd design 
the rest of content as they consider. This will allow, for 
example, the gc crowd to abuse the garbage collector if they want 
so, but also the !gc crowd to get rid of it. The future will 
prove if D really needs a garbage collector or not. The language 
maintainers need just to publish some rules and that's all.

Third party users want to get the job done. Let's do a web 
server. Let's connect to a database. Let's spawn some window on 
the screen. What they get instead? 12 sorting methods in 
std.algorithm. Personally, I really like the arsd libs more than 
any mambo-jambo written across phobos. If you ask me, I would 
grant Adam the official position of standard library designer.

Probably you will say that's ok, the crowd is free to design 
their libraries, just push it on code.dlang.org. In reality this 
is a graveyard (or the morgue, if we count std.experimental as 
the graveyard). Why projects are dead, simply because they are 
not officially blessed by the language maintainers and not 
included in the standard library.

To reinforce what I said, I will bring on the table the unwanted 
subject of Tango (yes, you can lie yourself that it was not the 
official library, but the reality is that it was de facto 
standard library). When the library design was let in the hands 
of the crowd, the content exceeded any expectation and 
consequentely D's popularity flourished, despite the fact that 
there was only one way to sort things (and by default a correct 
one, string collation was built-in). Phobos is still struggling 
after 15 years to match some Tango features.

Now, having the library designed by the crowd, it will put 
pressure to language maintainers to update D to cope with the 
library requirements. If ranges are the first class citizens, 
let's get them some syntactic sugar. If the gc is worthless, 
let's get rid of it. And so on.

Language maintainers became lazy. Instead of improving the 
language, it's easy to outsource everything to a library. D was 
nice and innovative 15 years ago, now it's struggling to keep the 
pace with new languages by patching missing features with 
libraries. You want resource counting, here you have 15 libraries 
to choose from. You want tagged unions, here I give you 
Algebraic. Wait, let's deprecate this, sumtype sounds better. 
Tuples, Nullable, Optional? I have another 10 brand new libraries 
for you. Dependency injection, serializing? Too advanced to be 
included in the language, here you have another 5 libraries.... 
Even old languages like C++ embraced new features;

To sum things up, why D became unpopular:
- because the standard library does not match users' expectations;
- because the language didn't evolve in the last 13 years;







More information about the Digitalmars-d mailing list