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