Why is D unpopular?

Paulo Pissas paulopissas at gmail.com
Sun May 1 10:57:51 UTC 2022


On Sunday, 1 May 2022 at 09:04:11 UTC, Walter Bright wrote:
> On 5/1/2022 12:33 AM, Paulo Pinto wrote:
>> First Lisp compiler was in 1960's....
>
> I know. And Lisp 1 was an interpreter, page 9 of:
>
> http://jmc.stanford.edu/articles/lisp/lisp.pdf
>
> I know perfectly well that interpreters have long evolved to 
> generate native code. I did one myself (Symantec's Java) in the 
> 1990s. I considered it for the Javascript interpreter I wrote 
> around 2000.
>
> I've also seen C interpreters in the 1980s. Why native C 
> compilers still didn't add interpretation to functions is a 
> mystery. The UCSD P-System had interpreting compilers for C, 
> Pascal, and Fortran in the 1980s.
>
> ***** Note that even the C interpreters would reject things 
> like: `int a[foo()];` i.e. CTFE was not part of the *language* 
> semantics. *****
>
> After D did it, suddenly the other native languages moved in 
> that direction. If you have another explanation for the timing, 
> I'd like to hear it.
>
> If you have a reference to a natively compiled language 
> specification that had compile-time constant-expressions that 
> could interpret a function at compile time, I'd appreciate it. 
> No, not an interpreted language that JITs whatever it can.
>
> Thanks!

At the end of the day, the busy programmer doesn't care who 
invented what, or when. He wants to get something done with as 
little friction as possible, and chooses a tool appropriately.

He might have a look at D and get seduced by it's syntax, which 
is quite similar to C/C++, C#,Java, but more pleasant and 
succinct. As he spends more time in the language, he realises 
it's even better than expected, as he learns about the not so 
obvious features, like CTFE, static if, templates, 
ranges/algorithms...

His next step is to try and use D for everything. Why not? D is 
amazing as a language, the compiler is faster than C++, he tells 
himself...

However, as the size of the project grows, compile times are no 
longer that great, compared to Java, C# or C.
As he starts encountering frictions, he realises a lot of this 
friction derives from issues in the language/compiler, and that 
some issues have been there for a long time. The community is not 
big enough, and currently has no interest in addressing these 
issues.

He realises the direction of the community is not to improve the 
busy programmer's life, but to increase their own joy and 
usability of the features they use, and to somehow find ways to 
claim D is better than other languages, an illusion based on 
their belief that more (unique) features are what makes a 
programming language better, despite the very obvious evidence of 
the contrary seen in the real world.

The D community is talented and above average in terms of 
knowledge/skills. However, this is not representative of the 
reality for a small company building a simple SaaS, website, or 
web application. So, even if the community (comprised of a lot of 
enthusiasts) is comfortable with the status quo, this does not 
mean that is really the case for the "real world".

D has a lot of good things, but the focus has never been on 
making D popular -
  sometimes it felt the goal was to keep D as "elite" as possible.

The reason I dropped D after over 6 years of using it 
exclusively, was a loss of belief in the direction, and the fact 
that after many years, not a lot had improved in regards to 
frictions for the busy programmer. It really felt like an 
enthusiasts' project, and not really an effort to build a widely 
adopted tool.

This might be an outdated view.


More information about the Digitalmars-d mailing list