Why D is not popular enough?

Chris via Digitalmars-d digitalmars-d at puremagic.com
Fri Aug 12 03:55:54 PDT 2016


On Thursday, 11 August 2016 at 15:41:42 UTC, Edward Diener wrote:
>
> 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.

I never got that point, really. When I started to program in D 
around 2010, documentation for D was almost non existent, but I 
quickly learned how to use it by just, well, using it. 
Programming languages have a lot of things in common, once you 
know one (or two) others are not so hard to learn/understand/use. 
If you come from a C++ background, understanding D should be a 
piece of cake.

> 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.

Cf. Patrick's comment. Let me add this: by constantly mentioning 
`intelligent programmers` you insinuate that people who use D are 
idiots who religiously worship the language. Anything but. The 
thing is that in D things are moving (and people in the community 
perceive it as something positive), which brings me to your next 
point.

> 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.

True. I admit that I "fear" every new release in the sense that 
something will break and I'll have to fix it. More often than 
not, however, the fixes are trivial, and if they make sense and 
improve the language, I'm willing to pay the price. But your 
argument shows the fix D developers are in: to provide a better 
language without changing it (paradox). The trivial truth is that 
you can only improve a language by changing it and you need a 
community that is willing to go along with the changes. For this 
reason D hasn't taken off, because most people are not willing to 
risk (or cannot afford) frequent changes. Personally, I don't 
know which is worse, frequent (educated) changes or years of 
suboptimal coding until changes are made at long last (cf. Java). 
Mind you, well established languages like Java and C++ are now 
adopting things that have been around in D (and other languages) 
for a while, because those concepts have proven to be useful.

This said, D has become a lot better in terms of deprecating 
things. You get a warning well in advance and you can prepare for 
the (breaking) changes. My perception (which might be biased) is 
that people look at D, bash it and trash it, but nevertheless 
take things on board when developing the next version of C++ or 
whatever - without giving credit later. The Led Zeppelin 
syndrome[1].

[1] https://www.youtube.com/watch?v=tiiY4ciKFQA

> 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.

I cannot comment on this, because I don't know what you've read, 
know or want to know about D.

> Edward Diener



More information about the Digitalmars-d mailing list