Why D is not popular enough?
Edward Diener via Digitalmars-d
digitalmars-d at puremagic.com
Thu Aug 11 08:41:42 PDT 2016
On 8/1/2016 11:31 AM, Emre Temelkuran wrote:
> For years, i was travelling along Golang, Rust, Perl, Ruby, Python, PHP,
> JScript, JVM Languages.
> Lastly Crystal Lang and Nimrod, Julia, Haskell, Swift and many more that
> i can't remember.
>
> I'm 24 years old, my first lang was PHP and VBasic then C,C++ and i
> first heard about D after 2005 when i was 14-15 years old.
>
> I always ignored D, i prejudiced that D failed, because nobody were
> talking about it. I decided to check it yesterday, it has excellent
> documentation, i almost covered all aspects. I think D is much better
> than the most of the other popular langs. It's clear as JScript, Swift,
> Julia and PHP, also it's capable enough as C,C++. I think D deserves a
> bigger community.
>
> Why people need NodeJS, Typescript etc, when there is already better
> looking lang?
> Everyone talking about how ugly is Golang. So why people are going on
> it? Performance concerns? Why languages that are not backed up by huge
> companies are looking like they failed?
I am a C++ expert who has looked at D in the past. Perhaps my reasons
for not programming in D may be taken as some of the reasons why D "is
not popular enough". My opinions are not meant to start a flame war,
even if some of my insights may be harsh to those who do use D. They
will hopefully give some idea of why and where D went wrong in trying to
appeal to the general intelligent programmer as a programming language.
1) Until very recently the documentation for D has been very
substandard. I do notice better documentation both on the web site now
and a few more books on D as a programming language. For a very long
time after D was created, even after version 2 was created, there was
essentially no decent documentation at all. If you are trying to promote
the use of a computer language to the general public you must create
first-rate documentation and explanation of your computer language from
the very beginning. Without this first-rate documentation your
programming language, no matter how good it might be, is just a toy to
those who want to play around with it and try it out. This is the case
that D promoted for a very long time, so the expectation that D was
going to become popular to the programming public with such poor
documentation was just foolish. C took off as a programming language for
the general programming when Kernigan and Ritchie wrote their classic
book and C++ took off as a programming language for the general public
when Stroustrop and subsequently Lippman wrote their classuc books.
While I think that Alexandrescu's book is decent it is not written at
the level of these others.
2) While I greatly respect the programming abilities of Mr. Bright and
Mr. Alexandrescu and their hard work in creating and improving D, having
followed both from the C++ world, the arrogance by which D was initially
and repeatedly compared against C/C++ has been totally out of place
since the beginning. C++ is a very good language and the effort made to
denigrate it with specious and ridiculously false arguments about it
vis-a-vis D as a programming language has almost irreparably hurt D as a
serious programming language irrespective of its actual abilities or
weaknesses. You are not going to appeal to the really intelligent
programmers out there if you are not honest and rigorous in discussion
of your own programming language in relation to others. All that you end
up doing is to alienate anyone with real programming intelligence by the
tactics that D has taken over the years with such comparisons.
3) D has suffered greatly because it has had too many moving targets as
if constant change to something slightly better is going to endear
programmers to using a computer language. Programmers need stability.
The needed to know that if they are using a programming language they
are getting a particular standard at a particular time with particular
libraries that work. They also need backward compatibility when things
change. D appears to have presented an almost constantly moving target
to this programmer, where adding/changing some feature is much more
important than fixing problems and providing stability.
4) As a C++ programmer largely interested in C++ template programming,
C++ concepts etc., and potential compile-time/run-time introspection, I
have never found a compelling reason to use D rather than C++. I do
recognize that C++'s template syntax is difficult and abstruse but I do
not and have never seen where D improves upon these matters in any
serious and rigorous way. This may be because the documentation about
these areas in D is either very light or almost completely lacking. Even
in Mr. Alexandrescu's book the discussion of these areas was very light
in my estimation. So whatever D has to offer in these areas, if there
are really impovements, is either lacking in the D documentation or does
not really exist for me.
Edward Diener
More information about the Digitalmars-d
mailing list