On Tuesday, 2 November 2021 at 17:27:25 UTC, Dr Machine Code wrote:
> It got asked on reddit 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.