Why has D failed to get momentum? Some years ago (maybe 15?) there was some buzz around this language, which looks like a nice improvement for many C or C++ use cases (but not all!). The language makes a more ergonomic impression than Go, for example, and it is probably easier to learn than Rust, because you don't have to wrap your head around the borrow checker. However, today hardly anyone talks about D and I wonder where the train derailed.
I suspect one aspect is a sort of "generational gap". In the 2010's a lot of new languages were created by younger people who wanted to put their own language on the tracks: NiM, Zig, Odin, to name a few.
Similarly, a second aspect is that other new languages raised, but not in the "cool- kid" category, this time rather in the "big-company-backed" one: Go, Rust.
In both case : more concurrency, less seats.
To season the salad you can add a few errors in the leadership, too much time to create a real organization, the missing "killer-app" too ?, etc.
Every couple of years there is this great new change that will bring the masses, while at the same time the latest biggest one isn't fully finalised with all corner cases sorted out.
Then when C++, C#, Java or other languages catch up, there is the sentiment that D did it first.
Well, it might have (or not when looking into CS research), but it hardly matters, as the former ones have better tooling, editors and established ecosystems.
For me, it was the garbage collector, and the fact that I'm more interested in systems/embedded programming, where the GC is a no-go. The -betterC [1] was good, but not good enough to replace C in my projects
Seriously, the competing library problem is stale news. It might've contributed to things stalling a long time back, but I think the main reason right now perhaps is due to no mainstream FOSS software that is used by a large population being written in D. Nowadays, there are too many alternate choices in capable languages with more backing and some of them have more mind-share like Go and Rust and Zig. Mostly Rust perhaps. And C++ is catching up. D doesn't really have a niche where it might be a good language to use.
"D doesn't really have a niche where it might be a good language to use."
I'm wondering if metaprograming would be a niche D could exploit. I have yet to find a systems language with the same introspection and code generation capabilities (minus JAI but its non public). Though not sure what business use case that would fall into... You are right C++ is catching up, Andrei Alexandrescu has a talk that about proposing changes to constexpr to effectively recreate D's static if so he can do Design by Introspection in C++ (https://www.youtube.com/watch?v=tcyb1lpEHm0)
--Examples/more info--
They literally have a "function" that takes in a regex and spits out D code that then gets compiled in to the executable.
https://www.youtube.com/watch?v=0lo-FOeWecA DConf Online 2021 - Metaprogramming in D - Bradley Chatha (this one gives a great overview + quick dive into what D meta programing can do)
Right, but D burned some of its very valuable growth time stagnating, and probably turned a lot of people off from D. It's a nice language now, but how many people never did (and will never now) give it a chance because of the "standard" library?
I'm suspicious that WalterBright's politics might be a factor in D's low adoption rate. Traditional conservative beliefs can get one excommunicated in our industry. I don't agree with him on everything, but it sickens me that I have to wonder if that's a factor. Why can't we tolerate diverse beliefs? Why can't we separate the art from the artist and evaluate a language solely on its merits?
Probably not. D's lack of adoption predates the surge in radical wokeness and I never saw it brought up before. Who the hell even knows what Walter Bright personally believes, that's super obscure.
I was enthusiastic when D first came out, but....
1. dmd was (iirc) free to use but closed source and I vaguely recall having a lot of issues with it. Later other compilers came along but dmd was the official one that defined the language so they always lagged behind. So, very dependent on the fate of Digital Mars which is a small company.
2. two memory management models in one language. Most libs require GC, so you have the complexity of a core lang that tries to be agnostic but an ecosystem that doesn't really help you use that.
3. no IDEs or tooling to speak of
4. two totally different standard libs with no agreement on which to use and neither all that great
I've noticed the exact phenomena you're describing on both here and reddit, where people will gush all over a famous person for their accomplishments until it becomes known that they espouse anything other than woke liberal orthodoxy.
I like the language, but I never really used it for much.
It’s the same with various other languages I’ve wanted to use, for example Ada. I sit down to work on something, fumble around for a bit, and realize it’s easier just to go back to using C or some other common high level language for whatever I’m doing, even if I think some other language is conceptually better.
I did apply to a job earlier in the year that piqued my interest because it mentioned D. Unfortunately brining that up in the interview seemed to kill my chances at the job, as the vibe swiftly changed and they started talking about how they were trying to get rid of it (mostly an issue of hiring people familiar with it).