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