Why is D unpopular?

Andrey Zherikov andrey.zherikov at gmail.com
Thu Nov 4 02:40:54 UTC 2021


On Tuesday, 2 November 2021 at 17:27:25 UTC, Dr Machine Code 
wrote:
> It got [asked on 
> reddit](https://www.reddit.com/r/d_language/comments/q74bzr/why_is_d_unpopular/) sub but for those that aren't active too, I'd like you opinions. Please don't get me wrong, I also love D, I've used it everywhere I can and I'd say it's my favourite language (yes I have one...) but I'm as as the reddit's OP, trying to understand why it's unpopular. Rust and Go seeming to be getting more and more users. I think it's due to large ecosystem and the big corporations with deep pockets that pushes them. But I'd like to know you all opinions

I've been playing with D from time to time for, may be, 10 years 
and here are my observations.
Positive:
- Maintainers like contributions.
- My PRs were reviewed in a timely manner.
- Great thanks to Ali for his book - it helped me a lot.
Negative:
- If I don't know how to fix a bug then it will likely be never 
fixed.
- Not enough tutorials how to do things.
- Lack of "best practices" documentation.
- Quite steep learning curve about how to contribute (things 
might have changed but I remember that compile DMD on Windows was 
not so simple).
- Unclear roadmap for D/DMD/Phobos.
- Unclear processes for extending standard library - there are 
[bunch of packages that are marked as "candidate for inclusion 
into std 
lib"](https://code.dlang.org/?sort=updated&category=library.std_aspirant&skip=0&limit=100) and some of them were not updated for 5+ years.

My personal verdict: I like D and I'll try to bring it into my 
company (if I won't leave it soon) but only to allow people to 
play with it.

What I'd like to see in the future:
- Fixing bugs in compiler should be the highest priority. So we 
can say that stable code is a priority.
- Clear roadmap of what to expect in D/DMD/Phobos in the future.
- Clear process of how new features in are delivered to public.
- Having "preview" mode of new features (e.g. `dmd 
--preview=feature-foo`).
- Clear process of how contributors can add new modules into 
Phobos. For example: someone nominates a library for inclusion, 
this application is reviewed by stakeholders and might be 
conditionally approved (they might reject); the condition is that 
library source code must meet "Phobos code quality" requirements 
(checks should be automatic) and as soon as this requirement is 
met, the library is added to std.
- Have a tool that upgrades the code so I don't need to do the 
same simple thing in thousand places (this is the case for 
long-living production code).
- Have better support in IDE - I prefer using IDEA, not 
VisualStudio.

The other thought that I hope might be useful:

There should be a list of "preferred" (not sure that this is the 
correct word) packages. It should be opt-in list that (a) 
provides a benefit for the package of being listed as preferred, 
(b) is a requirement for a package to be promoted into Phobos, 
(c) the package is tested with 5 (or other reasonable number) 
last versions of compilers and guaranteed to be working (being 
built). On the other side adding a package into that list 
requires some commitment from the author(s): if upcoming version 
of compiler breaks the build then the author is responsible to 
fix it, otherwise the package will be excluded. Having such a 
list will give the public the understanding of what is expected 
to work and what packages are maintained. In addition to that, 
DMD/Phobos maintainers can test the changes against the packages 
in the list to ensure that they are not breaking the most 
maintained packages.


More information about the Digitalmars-d mailing list