1. I found D pretty easy to learn and use so getting productive in it was easier for me than Rust.
2. D has a lot of improvements to C++ that make it more ergonomic (no header files! built in package management!)
3. D has a lot of flexibility to go up and down the stack in complexity as well as interface with existing c/c++ code.
a. Need to use d for scripting like Python? use Rdmd
b. Need to interface with c code and can't depend on the D compiler? use -betterC ^1
c. Need a quick and dirty way to use C code without creating bindings? use importC
d. Can't use the garbage collector? use @nogc
e. Need to interface with C++? use extern (C++)
D's flexibility is its greatest strength and weakness. It can do a lot of things but not all of its features are ergonomic. A lot of that just has to do with man power. If it had a community as large as C++ things would be different. Using the examples in 3, you could use Ds features and write a kernel with @nogc, a user interface for that kernel using regular D, and create build scripts using rdmd.To see a c++ person perspective on D watch this video^2
1. https://wiki.dlang.org/D_on_esp32/esp8266(llvm-xtensa%2Bldc)...
2. DConf '22: Ray Tracing in (Less Than) One Weekend with DLang -- Mike Shah https://www.youtube.com/watch?v=nCIB8df7q2g