The D Programming Language Conference '23
dconf.org
dconf.org
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=HdzwvY8Mo-w DConf 2017 Day 3 Keynote: Design by Introspection -- Andrei Alexandrescu
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)
By making use of constexpr if and concepts.
Yet another example of how D has missed to mainstream languages, that eventually got a good enough alternative, with a much rich and mature ecosystem.
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.
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 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
So, why use it instead of Java? Quite unclear.
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
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.
I think one reason it doesn’t get more attention is because some people get scared when they read GC, its a no-go for some.
I’d say for being a GC language, it’s still worth looking in to.
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).