I think D failed because it doesn't take a stand one way or the other.
Overwhelming majority of mainstream programmers want important choices to be made for them.
- People want language designers to decide: Has GC or no GC. Choose one and be consistent with it. Then all the libraries will be written on top of it.
- People want language designers to decide: Has async green thread or not. Choose one and be consistent with it. Then all the libraries will be written on top of it.
- People want language designers to decide an auto format syntax style. Choose one and be consistent with it. Then all the libraries will be written on top of it.
etc. etc.