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