D is dead

Shachar Shemesh shachar at weka.io
Thu Aug 23 09:09:40 UTC 2018


On 23/08/18 09:58, Joakim wrote:
> Because you've not listed any here, which makes you no better than some noob

Here's one: the forum does not respond well to criticism.



Here's an incredibly partial list:

* Features not playing well together.

Despite what Joakim seems to think, I've actually brought up an example 
in this thread. Here is another one:

functions may be @safe, nothrow, @nogc, pure. If it's a method it might 
also be const/inout/immutable, static. The number of libraries that 
support all combinations is exactly zero (e.g. - when passing a delegate 
in).

* Language complexity

Raise your hand if you know how a class with both opApply and the 
get/next/end functions behaves when you pass it to foreach. How about a 
struct? Does it matter if it allows copying or not?

The language was built because C++ was deemed too complex! Please see 
the thread about lazy [1] for a case where a question actually has an 
answer, but nobody seems to know it (and the person who does know it is 
hard pressed to explain the nuance that triggers this).

* Critical bugs aren't being solved

People keep advertising D as supporting RAII. I'm sorry, but "supports 
RAII" means "destructors are always run when the object is destroyed". 
If the community (and in this case, this includes Walter) sees a bug 
where that doesn't happen as not really a bug, then there is a deep 
problem, at least, over-promising. Just say you don't support RAII and 
destructors are unreliable and live with the consequences.

BTW: Python's destructors are unworkable, but they advertise it and face 
the consequences. The D community is still claiming that D supports RAII.

* The community

Oh boy.

Someone who carries weight needs to step in when the forum is trying to 
squash down on criticism. For Mecca, I'm able to do that [2], but for D, 
this simply doesn't happen.

------

This is a partial list, but it should give you enough to not accusing me 
of making baseless accusations. The simple point of the matter is that 
anyone who's been following what I write should already be familiar with 
all of the above.

The main thing for me, however, is how poorly the different D features 
fit together (my first point above). The language simply does not feel 
like it's composed of building blocks I can use to assemble whatever I 
want. It's like a Lego set where you're not allowed to place a red brick 
over a white brick if there is a blue brick somewhere in your building.

Shachar

1 - https://forum.dlang.org/thread/pjp2ef$310c$1@digitalmars.com
2 - https://forum.dlang.org/post/pctsgk$182l$1@digitalmars.com


More information about the Digitalmars-d mailing list