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