I've kept an eye on D over the years, but that's still too much magic for me. What C++ (and Lisp) gets right is providing user code with the same powers as the compiler. I realize that getting there is what turned them into complex beasts, but plenty could be left behind should one decide to make a clean cut. The problem from my perspective is that we're working both ends of the spectrum, backwards compatibility and fancy new ideas; but no energy is spent on cleaning up and refining what's already there.