Why is D unpopular?

Antonio antonio at abrevia.net
Mon Nov 8 12:17:08 UTC 2021


On Monday, 8 November 2021 at 08:07:54 UTC, rumbu wrote:
> ...
>
> 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.

Phobos is absolutely "template" oriented:  this is a hard 
decision that, may be, is good for some developers/projects but 
absolutely bad for others:  templates (and mixins, and...) are 
hard to integrate with debugging/inspecting and intelligence 
tooling.

Tango was a more standard library from the point of view of how 
an standard library is (Using the "generic type" way instead 
"template all").

It is difficult for a team accustomed to the speed of working 
with other statically typed languages well integrated with 
VSCode/IntelliJ (java, kotlin, c#, typescript) to change the "way 
of".

* If I can't inspect objects and its properties recursively as 
easy as I can with Java then I really can't debug code.

* If I can't identify easily a variable type (As a class or 
interface or whatever) and I need to answer the compiler what 
"this strange thing" is... then language doesn't describe 100% 
the model with it's own words:   sometimes I wonder if the D team 
thinks in terms of language or only in terms of compiler.

In my opinion... a "template all" library is an option for some 
developments, but forcing everybody to work this way is an 
stopper not only for developers:  for D language itself.

The facto, Phobos is what actually defines the D language: Phobos 
is killing D.


>
> 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.

Absolutely

>
> 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;

I agree.  Optional/Some/None (remove Nullable ASAP) and Pattern 
matching will be a great adquisition, Union types would be 
appreciated, powerful type inference (i.e. with Voldemort types): 
if Typescript can effort some of this features, why not D?


>
> To sum things up, why D became unpopular:
> - because the standard library does not match users' 
> expectations;

And doesn't fit developers "normalized" tooling way of working

> - because the language didn't evolve in the last 13 years;

Good point.





More information about the Digitalmars-d mailing list