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