D is dead

Shachar Shemesh shachar at weka.io
Thu Aug 23 17:02:12 UTC 2018



On 23/08/18 18:35, Joakim wrote:
> 
> So your example of a fatal flaw is that D could be 100X faster at 
> compilation instead of just 10X than most every other native language 
> out there?! C'mon.

Have you tried Stephan's example yet?

static foreach(i; 0..16384) {}

Do give it a shot, tell me what you think of its compilation time.

> On Thursday, 23 August 2018 at 09:09:40 UTC, Shachar Shemesh wrote:
>> * Features not playing well together.
>>
>> Despite what Joakim seems to think, I've actually brought up an 
>> example in this thread.
> 
> Despite what you seem to think, perhaps because you didn't read what I 
> wrote very closely, I noted your bugzilla link in my post you're quoting 
> and asked you if you really thought it was fatal.

Each problem on its own, maybe not. All together? Most definitely.

A language needs to be coherent. A programmer needs to be able to look 
at code and know what the compiler will make of that code. The less that 
can happen, the less useful the language is.

This is, in fact, precisely the criticism the D community levels against 
C++.

> Yes, this is a known problem with D: why do you think it's fatal?
See above.

> 
> By this rationale, C++ should be dead by now. Why do you think it's 
> fatal to D?

C++ does not suffer from this *kind* of complexity. For the most part, 
C++'s complexity is feature centric. You use a feature, you need to 
really learn that feature in order to get it to work.

D's complexity is waiting to pounce you behind street corners. You use a 
feature, and all's well. And then, when you're doing stuff completely 
tangential to your old code, things suddenly break.

You can avoid C++'s complexity by not using features. The same is not 
true of D.

With that said, who said these problems don't affect C++? Had C++ not 
being plagued by these problems, D (and Rust, and Go, and so on) would 
probably never had been born. These are languages written with the 
explicit hope of killing C++.

They do not seem like they are going to, but D lacks quite a few things 
that C++ has going for it. To name a few:

* Large community
* excellent tooling
* large use base

> 
>> * 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.
> 
> Maybe they're not critical to everyone else?

Maybe. Just don't lie to users.

> How much time or money 
> exactly has Weka spent on getting this issue and other "critical" bugs 
> fixed?

Weka is paying prominent D developers as contractors. We've had David 
Nadlinger and currently employ Johan Engelen. Both said they are cannot 
fix this particular bug.

If you can, feel free to contact me off-list, and I'm fairly sure we can 
get the budget for you to work on it. The same goes for anyone else on 
this list.

We also contribute our own workarounds for D's shortcomings for everyone 
to enjoy. This include DIP-1014 and Mecca, as well as the less obvious 
upstreaming of bugs our contractors fix. This is beyond the fact that 
our "fork" of the compiler is, itself, public 
(https://github.com/weka-io/ldc). I think claiming that Weka is leaching 
off the community is simply unwarranted.

> It is fairly laughable for a company that raised $42 million to 
> complain that a bunch of unpaid volunteers aren't fixing bugs fast 
> enough for them:

First of all, and this is important, I do not speak for Weka. I can pass 
recommendations, and I can sometime estimate in advance what will and 
what will not be approved, but that's it. As *I* don't have 42 million 
dollars, I find that particular criticism irrelevant (not to mention 
downright incorrect, as pointed above).

With that said, I am not complaining about anything. I am stating the 
situation as I see it. I understand it is uncomfortable to hear, and 
thus the aggressiveness of your response. I can only point out the 
obvious: you shaming me will not make me change my mind. At best, it 
will make me not say it publicly.

Shachar


More information about the Digitalmars-d mailing list