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