On Tuesday, 2 November 2021 at 23:47:42 UTC, Dukc wrote:
> Not saying your theory is wrong, but I'm not going to put much weight on it and neither should anyone else, unless you can show some research you're basing your opinions on. And that applies to all forum theories about subjects like this.
> As if something else was suggested. We are not talking about whether we wish to answer questions about language adoption, we are talking about how they can be somewhat reliably answered, if at all.
Let me share my credentials with you. I am a human and a developer. I have been one for some number of years. I interact with humans who are developers on a weekdaily basis and have done so for over a decade. I guess you could call me a world expert on humans who are developers.
As a world expert on humans, I have noticed that humans don't really like uncertainty. As a human developer who works with developers, I have noticed that human developers aren't super interested in sinking a bunch of time into something that will not provide lasting value. They look at the long-term/Big-Oh value as opposed to the immediate gratification when it comes to development projects.
Based on those two concepts, and virtually ever post I have ever seen about why people leave D, I can come to some conclusions:
-
There is uncertainty in D. Where is it going? Is it going to support the things I like about it in the future? Is it going to grow? Is it going to die? Will I be able to find an answer to a question that comes up? What IDE should I use? Does it matter which compiler I use?
-
People are not sure their investment in writing D programs is a secure investment. Will your code still work in a year? Will the language exist in a few years? Are the maintainers going to make some crazy non-backwards-compatible decision that will ruin my application? Will the library I am using go away?
You could call what it lacks a vision. I don't mean a vision that spells out where the language is going or what it's good at, although that can be part of a vision. I think people can accept very little vision if they have some guarantees - some things they can hold on to and make decisions around. These are the guarantees which most people like and which are provided by most popular languages, like: tools will be maintained and fixed if there is an issue, libraries for common tasks will be maintained and available, the language will remain backwards compatible, you can quickly get answers to your questions from a number of sources.
I also think people see a language that is 20 years old with the toolset and libraries it has and assume that this is all the progress that has been made and that progress must be slow. They may not know about all the corpses of libraries and tools strewn along the way. They might think this is it. That is just speculation, though.
If you want to know what people think, I can see two good ways to do it.
The first is to just think of all the reasons to use D. Then think of a specific type of user who those reasons to appeal to. Now ask them to use D and see what they say. Repeat. Do the reasons appeal to them? Do they make up for the unappealing parts of the ecosystem? You can also do this as a thought experiment.
The second is to find repos in the d language that haven't been maintained in a while and reach out to the users and ask them why they left.
In the end, the question is does this solve a problem people have and does it solve it in a way that another tool doesn't? In some sense, yes, but what do you have to give up to get those gains? I think the answer is pretty obvious and it's the reason D is what I always consider first, but not what I usually use.