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