On Sunday, 15 December 2013 at 10:30:36 UTC, Joseph Rushton
Wakeling wrote:
Your contention about fragmentation due to the 3 compilers is,
I think, objectively false, however. On the contrary, what
differences there are have been continuously narrowing for the
whole period of time that I've been actively using D, to the
point where pretty soon the frontends of GDC, LDC and DMD will
be 100% identical code.
Ok, that is quite possible, but I that might also be the case for
BSD… FreeBSD is probably on par with Linux, but it is still
perceived as being part of a fragmented ecosystem. Open source
projects that fragment tend to die, so I think people are a bit
uneasy about that in general. I agree that it is a superficial
measurement.
Oh, and -- I can't see that rewriting the compilers to output
to C++ would really be easier than just implementing better
direct support for interfacing with C++ in the language.
If I write an engine in D and then want to port it to iOS…
practical usefulness. If what you see in D today doesn't
convince you that it's worth trying to take that jump a second
time, then that's your judgement to make. But I think you
might get more out of spending a couple of hours trying things
out in a playful way, rather than writing long emails debating
fairly abstract philosophical ideas and desires for the
language.
Actually, my arguments are not philosophical. They are pragmatic.
D is not high level enough to be high level and not low level
enough to give sufficient low level control.
I would want a C++-replacement to give me convinient access to
hardware-level features such as transactional memory in the
Haswell processor etc. Making 3 compiler backends support stuff
like that seems a bit unrealistic.
TL;DR I don't think it matters whether you're fair to D or not,
but it matters that you're fair to yourself in giving yourself
the chance to properly assess what D can do for you today :-)
Well, if it did support transactional memory and was more clearly
dedicated towards low-level programming I would use it to have
lock free concurrent programming in a relatively clean
programming language.
O.