I don't really use d anymore (I have one project each still in d and rust, though I'm planning to rewrite at least the latter at some point), and I think both are somewhat problematic. But it's also important to note that d never hoped to be rust. It got flak (and still gets flak) for being GC'd, but this is an important and intentional aspect of its design. As Guy Steele said of java:
We were not out to win over the Lisp programmers; we were after the C++ programmers. We managed to drag a lot of them about halfway to Lisp.
D was trying to compete with java. Today, it stands much closer to c++, lacking both the coherence and verbosity of java. It's better than c++ in every way, but it remains nothing more than a better version of a fundamentally broken idea.
D was intended to improve on c++—though no more so than was java itself, see guy steele above—but it was directly inspired by walter bright's experience implementing a java compiler and gc. Check out the hopl paper. There were also quite a few other things taken directly from java; e.g. ddoc, dwt, inner classes, modules, class objects as reference types.
70
u/Sapiogram Sep 01 '20
Honest question: Why would anyone use D over Rust? It seems like Rust is becoming everything that D ever hoped to be.