d future or plans for d3

Alex Rønne Petersen xtzgzorex at gmail.com
Sun Dec 18 04:19:43 PST 2011


On 18-12-2011 12:45, Somedude wrote:
> Le 18/12/2011 12:13, Ruslan Mullakhmetov a écrit :
>>   I do not want to make a flame over D vs C++11.
>>
>> ...
>>   Once again, i'm not trying to make a holywar. I'm D lover myself. But a
>> lot of people do not consider this benefits of D enough to shift to it
>> as for my opinion and experience.
>>
>>
>
> These people will not change their mind whatever you throw at them. For
> them, it's a matter of religion, not a matter of comparison. We
> shouldn't bother pleasing such or such group of people.
>
> BTW, your comparison with Erlang misses one crucial point: performance.
> A part for some very specific applications for which it is designed,
> Erlang's general performance is simply not comparable to that of D. A
> lot of D's complex set of features is geared towards increasing runtime
> performance. Erlang just doesn't compare.

On the other hand, Erlang's runtime is built around message-passing. I 
*extremely strongly doubt* that you can get similar performance out of 
message-passing in D, for two reasons:

1) The Erlang runtime is written in highly optimized C.
2) Erlang uses better garbage collection strategies than D.

On point 1: Of course, you can write a message-passing implementation in 
D that's basically just glorified C, but that defeats the point of using 
D in the first place IMHO.

On point 2: This is highly unlikely to change. It seems (from reading 
the NG's past discussions) that there is virtually no interest from the 
core devs of D to do The Right Thing to make precise garbage collection 
possible, sadly (and neither to make thread-local GC possible, and other 
such techniques (Erlang runs a separate GC per Erlang process, very 
successfully)).

Yes, Erlang's emulator is not good in raw performance. It was never 
geared for this (that's why it has easy interfacing with C for 
performance-sensitive code). However, things like HiPE improve the 
situation.

All languages have their place, and Erlang is still going strong in the 
world of massive concurrency. I doubt D will be able to challenge this 
until its GC issues have been resolved (and even then, D is nowhere near 
as convenient, lacking fault tolerance and location transparency; 
sometimes these traits are *much* more desirable than raw performance 
when dealing with concurrency on such high levels).

- Alex


More information about the Digitalmars-d mailing list