Has D failed? ( unpopular opinion but I think yes )

Margo margo at margotics.des
Thu Apr 18 23:43:26 UTC 2019


On Friday, 12 April 2019 at 13:50:42 UTC, SrMordred wrote:
> On Friday, 12 April 2019 at 08:02:30 UTC, JN wrote:
>> more behind the scenes, around the same level of popularity as 
>> Nim, Crystal.
>
> Since i think this is a talk about popularity...
>
> I feel that Nim and Crystal have WAY more adoption/popularity 
> than D, but im not sure if both are backed by any great group 
> (like Rust).
>
> So I think a good point to focus this discussion is, why Nim 
> and Crystal got the lead in popularity but not D?

As somebody who programs in Crystal, i find the statement that 
Crystal is leading in popularity is a bit of a overstatement. Nim 
probably has a even lower popularity then Crystal.

Crystal suffers from a lot of the same issues that D does.

Editor support is lacking. D technically has more and better 
Editor support but again but most editor support feel amateurism 
at best with bugs, lockups and more.

Windows support is currently non-existing and being worked upon. 
D has that but ... it tends to be "fragile".

Multithreading is being worked on but again ...

D clearly is a much more advanced programming language with 
BetterC and the whole gamma of options.

And this is where things turn into Crystal its advantage. Despite 
all the missing features, its so easy to get tasks setup and 
going. The roadblocks feel less of a issue. D just feels *old* 
with the 1001 command line options.

I see so many times when a user has a issue, people responds with 
"do -xwys" command. And yes, it works but its a design flaw at 
the same time. A good modern programming language runs almost any 
task without a end user ever needing to learn half a manual of 
command line arguments. Do a search on this very message board 
and compare this to other languages.

Most of my work these days is programming web applications. Lets 
be honest, the web and mobile will keep growing and intermixing 
more and more. Webasm is another sign of this. Yet, it ends up 
being a task and half to get even a basic HTTP solution going for 
D, let alone one that performs.

Vibe-D when tested against real world scenarios makes PHP look 
like a Ferrari. We do not even start on the whole 
incompatibilities between D versions and Vibe-D ( or depending 
packages ).

At my old job i spend a week trying to implement some code in D 
and being unhappy about all the other stuff i needed to write 
just to get it function. I spend a day in PHP and was finished. 
Sure, it was slower, used more memory but my time was way more 
valuable.

Crystal when upgrading tends to be so easy to fix changes, where 
as a lot of the D eco system depends so much on specific versions 
of D. With constant changes for new features and removals of old 
ones, D keeps hurting so many packages. I see plugin authors 
simply giving up and not bothering fixing older code because its 
too much work.

If we compare this to PHP, what gets so much unholy criticism 
from people ( a lot undeserved because years out of date 
information ), there seems to be a much more strong desire to 
keep things going. Because a lot of the eco system does not 
depend on specific PHP versions or it keeps a large amount of 
backward compatibility, we can run old 5.6 code that has not seen 
a update in 4 years without issues. Try running not updated 4 
year old D code that is not a few basic lines and that depends on 
dependencies. Go ahead, i will wait :)

This brings us back to Crystal. Its slow to develop because its 
only a few people also but they do have a main focus on keeping 
compatible with older code. And you feel this in the community 
and responses.

I do not think D is dead but you feel a lot of people are 
somewhat allergic to outsiders here. A lot of topic by simply 
reading almost feel like "My precious!!!(Gollum)" as people are 
helpful but very fast to go apeshit if criticism come up as to 
why things are complicated. Especially if that user compares it 
to other languages.

Now i see people mentioning D3 and i think by myself: If you can 
not make D1 and D2 a success without turning it into a massive 
fuzzball, what makes you think that D3 is any better? All you 
send up with is a even more split community and more resources 
down the drain.

Do you want a solution? Sure and the answer is: There is non that 
people will accept! D is a marvelous piece of compiler but that 
is the issue. Everybody is so focus on the compiler and features 
aspect, that they forget it takes a army of grunds to make the 
eco system, editors etc AND to maintain them!

Without a corporate backer, who wants to put time into your 
system, you have nothing that really lasts. Look at Jetbrain... 
Go got support very fast. Rust got a company and community backed 
plugin. D ... has a best a half supported community plugin that 
depends on one guy for most of the work. Visual Studio Code has 
the same issue. One guy doing most of the work. Their is simply 
very little focus on creating community multi backed solution 
beyond people posting here "why do you not do it".

Somebody mentioned codingame just a few days ago... The first 
responds to this user: "You're probably in the best position, as 
a user of the site, to advocate D's inclusion.". Yes, a random 
newbie who asked why D was not on this website, where you learn 
to program needs to "do the work" to get D on it.

It happens with so many topics and the person leaves, to never 
come back. Or this person will pick a fight as "why do i need to 
do that". So many people here think that if you disagree or find 
a issue, its your task to fix it. And while some people have the 
time, skill and motivation, MOST DO NOT!

I said plenty already on this topic but its really a big part of 
the community here why D itself is not going forward. Too many 
Ph.D type attitudes but it backfires on the "common" man. Say 
what you want about Rust ( and it legion of zealots ) but they 
really worked hard to make community, editor and other support 
easier. Even cross compilation is so easy unlike a aforementioned 
language. And i do not even use Rust in my daily work.

The reality is that a lot of this community is somewhat toxic and 
internally focused without it realizes itself. This is probably 
the main reason for D its failure to really grow outside a few 
companies and projects. People keep forgetting the basics. If its 
not dead simple, you can only sell your product to a already 
existing marked of complex users. Moving those users, with years 
of invested time into your product is HARD!!!! Any good sales 
person will tell you this. And that is a other issue. The lack of 
real useful things that makes a advanced user switch from C/C++ 
or whatever languages and pick up D before a language like Rust.

We can say that D WASTED 20 years time and now has competitors 
that simply have their acts better together. Its like trying to 
piss in a stream, while your standing downstream. It just flows 
back on you.

The reality is, D brings few new things to the market that a 
competitor can not copy ( C++ already did, so why switch ). D 
dropped the ball a long time ago and no offense guys but seeing 
the current state and its evolution, sure, you get a bit more 
attention but your not growing because of all the issues, code 
and more.

I am sure that we shall see each other again in a few months when 
the next topic pops up with people complaining. The reality is, D 
simply does not evolve in a way to really make it gain any 
popularity that is required to grew its eco system. And now with 
competitors like Go, Rust, ... and minor competitors like 
Crystal, Nim, ... and the already established competitors taking 
D features a long time ago.


More information about the Digitalmars-d mailing list