C++ programmers don't go to Go because Go occupies the space otherwise taken by Java.
The only real, modern alternative to C++ is Rust, but it's not at 1.0 yet, meanwhile C++ is still getting new features, all the while preserving compatibility.
The only real, modern alternative to C++ is Rust, but it's not at 1.0 yet, meanwhile C++ is still getting new features, all the while preserving compatibility.
Not only that, sometimes you don't want a runtime overhead plain and simple. I don't know anyone in high throughput app development who would be happy with go. You want to generate a sequence of instructions which get executed.
Ok, you can use C/C++ freestanding for kernels, but that does not change the fact that C as a language has a specified runtime.
Plus all these generated systems are standard and thus you can have different languages linking each other.
Sadly, C/C++ take the world.