Why is D unpopular?

Paulo Pinto pjmlp at progtools.org
Tue May 31 06:54:17 UTC 2022


On Tuesday, 31 May 2022 at 02:07:53 UTC, forkit wrote:
> On Monday, 30 May 2022 at 18:58:38 UTC, H. S. Teoh wrote:
>>
>> ...
>> And D is the only language where having multiple compilers is 
>> said to be a bad thing.  C, for example, probably has hundreds 
>> of different compilers, yet we never hear anyone complain 
>> about why C is bad because it has so many compilers.  Or C++, 
>> for that matter.  Yet for D this is somehow one of the biggest 
>> nails in its supposed coffin.  Tellingly enough, back in the 
>> days when dmd was the only compiler, people were singing 
>> lamentations on why having only one compiler was bad.  And now 
>> this.  Let the reader draw his own conclusions. ;-)
>> ...
>
> The problem with 'multiple compilers' is the concept of 
> 'implementation defined' behaviours.
>
> With a single compiler, implementation defined behaviours, 
> which would of course exist, are contained to the 'one' 
> compiler, which has obvious benefits for developers, and their 
> customers (and C# is a prime example), as well as the compiler 
> developers and the language designers.
>
> Of course people like Stroustrup strongly support and argue for 
> the idea of multiple compilers, but his views/arguments really 
> reflect the legacy of C and C++. I don't know that they are 
> relevant to the future ;-)
>
> I don't argue against multiple compilers per se. I argue 
> against compilers having 'different' definitions of behaviours 
> of the same language.
>
> I would like to understand whether this is also a problem with 
> the D programming language (I don't know that it is, but I'd 
> like to know). If it is a problem, then (to keep in context 
> with the subject of this thread), perhaps it is a reason why D 
> is unpopular, given the problems it has created in the C/C++ 
> world of programming.

C# is not a prime example, Mono/Xamarin, .NET Native, Native AOT, 
Meadow, CosmOS, Unity IL2CPP/Burst DOTS,....

Java => OpenJDK, OpenJ9, ExcelsiorJET, PTC, Aicas JamaicaVM, 
HP-UX JVM, Aix JVM, microEJ, ART, Ricoh JVM, GraalVM, ...

Python => CPython, JPython, IronPython, MicroPython, 
CircuitPython, PyPI, GraalVM Python,...

Go => G9, gcc-go, TinyGo, TamaGo,...

Rust => Rust LLVM, rustc_codegen_gcc, gccrs, Miri, Cranelift

Pascal => Apple Pascal, Turbo Pascal, Quick Pascal, VMS Pascal, 
Quick Pascal, Delphi, FreePascal

No it isn't a C problem, rather quite common in the industry for 
mature languages.


More information about the Digitalmars-d mailing list