Why is D unpopular?
harakim
harakim at gmail.com
Tue Nov 2 21:11:12 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 left a long response on that, but I guess I can add one here.
tldr: it's not stable, there aren't many libraries for it, there
are few standard tools, you can't find answers to other people
who had the problem you're currently having and the alternatives
are not that bad.
What is the mindset of someone investigating D? Are they trying
to learn about D or are they trying to find a solution to some
problems they either have or expect to have?
So right out of the gate, they probably aren't coming to D. They
are searching in a search engine and finding Rust, Nim, etc, if
they are looking for something low level. They are probably also
finding that C++ is popular and what is used the most. For web
development, it's Java, PHP, C#, and Python (and we can say Ruby
so those people don't feel bad.) They will even find Go.
If they manage to find D and decide to evaluate it, imagine their
experience as contrasted to other languages. Type learn d
programming into google and you'll get a tutorial that says they
already need to know how to program and "You just need to have a
basic understanding of working with a simple text editor and
command line." I think at that point, a lot of people say "this
isn't for me."
The second hit is the d language home page. When you go to the
homepage, it shows download language, an editor that people who
already know D can use and a donation button. Very small in the
off-screen section, you will find a tour. This is fine for Java,
which people have to use and which people learn in school. It's
not fine when you're trying to get people interested.
The third link is a sub link and is the tour. Now the tour starts
with a wall of text and many language options, none of which is
English. It also doesn't really tell you how to set up your
environment. It says you don't need an IDE, but you can use one
if you want. The next thing it shows is the command line. I'm not
saying this tutorial is that hard to follow, especially if you
already use the command line and know about programming, I'm just
saying it's 4 pages in and probably 20 minutes if you really read
through and there is no pay dirt yet.
Contrast that to Ruby. For me, the first link is code academy,
the second link is:
https://www.ruby-lang.org/en/documentation/quickstart/. It's the
official ruby page and it's still pretty decent. It gets almost
straight to the action.
I think that is one series of barriers to entry. People may not
even get to the point where they try the language. Those are the
main barriers.
Once you get in, though, there isn't really a coherent way to
move forward with projects. There are not a lot of tutorials with
a result of a working piece of software, there are not a lot of
projects or libraries. Most of the libraries you find are no
longer maintained. So you have to do a lot from scratch. To be
honest, this isn't as big of a deal as in other languages,
because you have low-level access through the standard library,
you can use C libraries and it's quicker to build a library than
in other languages. But it's not nothing.
When you get tripped up, you can't find examples in D or answers
to your specific problem on stack overflow.
The language changes in non-backwards compatible ways. If you're
a casual user, you probably won't notice these changes being
announced. You'll just notice when you have to update your D
compiler 30 versions for a library. It will compile the library,
but it doesn't compile *your* code anymore.
At some point, I think most people who have used D have asked: is
it worth it? I mean, you can just switch to another language that
might be a little inferior but it has tons of libraries, tons of
tutorials, and you know something like C# is going to be
backwards compatible.
I will not have any of those problems with Java or C# and
probably not with Python. At some point, I just have to say "What
am I trying to accomplish, and is D essential to that?" I think a
lot of people decided it was not.
I do think there is a path for D to become a major programming
language, but it would need to change course a little. I don't
know if that is worth it to the people who work on D.
More information about the Digitalmars-d
mailing list