Why is D unpopular?

Siarhei Siamashka siarhei.siamashka at gmail.com
Mon May 16 09:25:14 UTC 2022


On Monday, 16 May 2022 at 08:33:08 UTC, Mike Parker wrote:
> On Monday, 16 May 2022 at 06:51:46 UTC, Siarhei Siamashka wrote:
>> D is good for rapid development of new code, but isn't great 
>> for long term maintenance because of the language evolution 
>> and compatibility breakages. My understanding is that many D 
>> projects and libraries died off because they could not afford 
>> to keep up and can't be even compiled anymore.
>
> I don't think that's true at all. Maybe some people felt the 
> rate of change is to high (others will tell you they want more 
> breakage), but I suspect many D projects and libraries died off 
> because their creators moved on to other things before they got 
> their projects to the state they wanted. You can find countless 
> projects like that in every language ecosystem. They're perhaps 
> more noticeable in ours because we're so small.
>
> It's very easy to start a new project on a whim in any 
> language, but getting it to the state you're aiming for and 
> maintaining it long-term require discipline and commitment. 
> Talk to people who actually maintain projects long-term to see 
> what their take is.

I vaguely remember this message about maintaining 400kloc D code 
and keeping it up with the latest compiler versions: 
https://forum.dlang.org/post/idswokerwzdkszevjbrh@forum.dlang.org

Now I see that the poster said that the amount of breakages that 
come from compiler upgrades was reasonably small (at least by the 
poster's standards). But honestly, the description of their 
development process and the fact that there are at least some 
compatibility breaks is terrifying me. For example, I wonder what 
are they doing when they need to bisect a somewhat old bug? There 
are many little things like this that make everything problematic.

C++ compilers allow to pick an older versions of the standard for 
keeping compatibility with legacy code (such as as the 
'-std=c++11' option supported by G++). Rust has language editions 
too, which help to ensure that the legacy code keeps working even 
as the compiler evolves. But D language forever remains 
experimental. Or at least it is perceived as such by many 
outsiders and gets dismissed because of this.


More information about the Digitalmars-d mailing list