D is pretty much the opposite of Go, a pinnacle of feature bloat instead of stripped down simplicity. A C++ killer that turned into a kind of C++ with GC.
Go would be have an interesting language in 1986 [0], or in 1995 [1].
As it stands, it is forced to follow some of Java design mistakes by not integrating modern features and then being forced to actually adopt them in a half-baked way due to market pressure, while striving not to break backwards compatibility with existing code.
Modern C++ also uses GC, even it is opt-in.
And several modern C++ features actually originated in D.
D has the benefit of not being constrained by C copy-paste compatibility like C++.
But yeah, it suffers from having a tiny community.
If Go's design was perfect, its eco-system wouldn't feel like Java 1.0, full with libraries to replicate what should be language features to start with.
The first time I saw "go generate" it was on Borland C++ 2.0 for MS-DOS, released around 1990.