November 02, 2021

On Tuesday, 2 November 2021 at 18:57:32 UTC, Paulo Pinto wrote:

>

On Tuesday, 2 November 2021 at 18:08:53 UTC, Imperatorn wrote:

>

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

Have asked this question for a long time now. Still don't know why.

Easy, during the last 10 years, Java, C# and C++ added the features that D had as edge over them.

I suspect an even bigger factor is the proliferation of good languages in the last 20 years. Someone wanting to have fun programming can use Clojure, Scala, F#, OCaml, Julia, Kotlin, and others. Someone wanting to replace C for things that need to be much faster than a scripting language have Rust, Go, Nim, and others. The fact that some of those languages are good for compiling to Javascript is yet another reason to not use D.

November 02, 2021

On Tuesday, 2 November 2021 at 19:02:52 UTC, Imperatorn wrote:

>

Well, yeah. But, if D has got something for everyone, why hasn't it got more users? 🤔

It's easier to just go with another language with:

  • Better ecosystem
  • Libraries with actual documentation
  • Popular/core libraries tend to have tutorials
  • Standard ways for logging, DB connection, etc
  • A VSCode plugin/IDE that's actually capable of handling the language properly
  • Doesn't require you to often dive into spending ages getting a random C library to compile
  • Doesn't require you to write C code alongside the native language's code
  • Doesn't constantly undergo an identity crisis to chase the next fad

Starting from scratch is an excellent experience, since the language itself is amazing.

But getting stuff done is simply easier to do with other languages.

Friction. D has plenty to spare.

November 02, 2021

On Tuesday, 2 November 2021 at 19:10:08 UTC, bachmeier wrote:

>

Someone wanting to replace C for things that need to be much faster than a scripting language have Rust, Go, Nim, and others. The fact that some of those languages are good for compiling to Javascript is yet another reason to not use D.

Not so sure about Javascript, but for people looking for a niche programming language there certainly are many options.

Although I feel the primary reason is that D is without direction. The original focus was to be a cleaned up C++, without the complicating bits, but D2 gave it roughly the same disadvantages that C++ has without the advantages C++ has. That in combination with some odd choices (on multiple levels) for system level programming sends a signal of no clear vision.

I think it is very important for small niche languages to send a very strong and clear signal of what the vision is, like Rust did. Because people don't pick them up for what they are capable of today, but for where they are heading. They want to join the ride, be one of the early adopters, gold rush, innovators, etc. That's how you get hyped up…

The current vision appears to be to entertain those that find the current feature set attractive, but that is a very foggy picture. It is very difficult for outsiders to figure out where D is headed from such an unclear vision.

November 02, 2021

On Tuesday, 2 November 2021 at 19:21:36 UTC, Ola Fosheim Grøstad wrote:

>

did. Because people don't pick them up for what they are capable of today, but for where they are heading. They want to join the ride, be one of the early adopters, gold rush, innovators, etc. That's how you get hyped up…

Another point that is easy to miss is that the hardcore geeks are very important for building the eco system. The «hacker» type. They sometimes feel at home with niche languages as they don't mind being outsiders, or maybe they hold «anti establishment»/«anarchy» views. Then the values of the community is just as important as the language. (Re. Lisp).

So, there are no easy answers, really. Attraction and rejection happen on multiple levels.

November 02, 2021

On Tuesday, 2 November 2021 at 19:13:38 UTC, SealabJaster wrote:

>

On Tuesday, 2 November 2021 at 19:02:52 UTC, Imperatorn wrote:

>

Well, yeah. But, if D has got something for everyone, why hasn't it got more users? 🤔

It's easier to just go with another language with:

  • Better ecosystem

Agreed

>
  • Libraries with actual documentation

Could be better yes

>
  • Popular/core libraries tend to have tutorials

True

>
  • Standard ways for logging, DB connection, etc

Also true

Pattern for the above, are we afraid of standardizing stuff in D?

>
  • A VSCode plugin/IDE that's actually capable of handling the language properly

code-d and Visual D in conjunction works good enough for me, but could be better.

>
  • Doesn't require you to often dive into spending ages getting a random C library to compile

I don't quite get what you mean here

>
  • Doesn't require you to write C code alongside the native language's code

Or here

>
  • Doesn't constantly undergo an identity crisis to chase the next fad

Yes we need to make some wise decisions!

>

Starting from scratch is an excellent experience, since the language itself is amazing.

Agreed :)

>

But getting stuff done is simply easier to do with other languages.

Hmm, only the bigger languages I would agree this is true. But I guess that's what you mean

>

Friction. D has plenty to spare.

It has a learning curve and edge cases, yes. I guess that's the price you pay for not having standard ways of doing some stuff...

November 02, 2021

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

This is the sort of thing what many of us love to tell they "know", but we're really only guessing based on past personal experience and gut feeling - very shaky. Perhaps someone really has more insight than the rest but we can hardly tell who.

We need some real research on human behaviour to base our opinions on, otherwise we're never going to know the real reasons with any meaningful confidence.

November 02, 2021

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.

November 02, 2021

On Tuesday, 2 November 2021 at 21:08:22 UTC, Dukc wrote:

>

This is the sort of thing what many of us love to tell they "know", but we're really only guessing based on past personal experience and gut feeling - very shaky. Perhaps someone really has more insight than the rest but we can hardly tell who.

We need some real research on human behaviour to base our opinions on, otherwise we're never going to know the real reasons with any meaningful confidence.

Most everyone in the thread seems to agree. I started writing my answer several hours ago and hadn't seen most of the other replies. My post has the same answers, though, because they're pretty clear.

As someone who has stepped away from D many times to get work done, I feel like I am one of those people. I just always hold hope and come back.

November 02, 2021

On Tuesday, 2 November 2021 at 21:08:22 UTC, Dukc wrote:

>

We need some real research on human behaviour to base our opinions on, otherwise we're never going to know the real reasons with any meaningful confidence.

You get an idea when you follow the forums for several years (where people explain why they quit) and read what people write on various social media. Lack of direction seems to be quite a common theme.

If we take Rust as an example, then we know that it was growing and attracting users before it hit 1.0 and generated lots of hype. Rust projected very strong values, both in terms of language philosophy and community. Some found it off-putting, but if that means that they scared off 50%, it also means that those that remain are more likely to pull in the same direction. Which is immensely helpful… And they managed to attract a very geeky academic subset of the programming population (highly capable programmers) which is good for the eco system.

By casting the net wide, D has a population that is pulling in all kinds of directions, which is kinda interesting, but not really ideal for progress.

November 02, 2021

On Tuesday, 2 November 2021 at 21:35:45 UTC, Ola Fosheim Grøstad wrote:

>

You get an idea when you follow the forums for several years (where people explain why they quit) and read what people write on various social media. Lack of direction seems to be quite a common theme.

This alone does not tell much. How often do people leave our/other languages? What reasons there are when they leave other languages? We do not know how we compare. Do those who post a goodbye (or badbye?) rant represent the typical leaver? And are the things that would have more people choose D the same that would have less people leaving?

Those all are questions one can't answer by gut with any reliability.

>

If we take Rust as an example, then we know that it was growing and attracting users before it hit 1.0 and generated lots of hype. Rust projected very strong values, both in terms of language philosophy and community. Some found it off-putting, but if that means that they scared off 50%, it also means that those that remain are more likely to pull in the same direction.

But you can't conclude from that that projecting strong values correlates strongly with success, or you're committing the Texian sharpshooter fallacy. There are tons of other potential explanations.

And no, you're not avoiding the fallacy merely by listing a few other succesful languages that also had strong opinions.