At least Go can generate it's own hype, and doesn't need to piggyback on others.
Basically - Go had a very strong focus on web servers from the start, making it easy to pick up and develop web servers with. Web developers make good early adopters - they'll pick up new tools faster than almost any other group of developers. Rust was released without any of those tools, and they're still changing as the ecosystem develops (especially around async frameworks). And even with that, there's a fair few companies using it for all sorts of cool things: https://www.rust-lang.org/en-US/friends.html
The only reason it gained any traction is the big name of the mothership...
No at all. It's very far from even remotely decent implementation, the interface is too inconsistent and full of implicit behaviors and the performance is an order of magnitude slower than anything acceptable. But anyone actually using it already knows..
I liked the goroutine related apis though.
What I remember being PAINFULLY slow is reflection. Which is very inconvenient for certain tasks (building objects from db queries, (json) serializing,...). Macros could help here, but alas, code generation is the only alternative available. Which I'm not a fan of.
---
What's are your gripes with Gos CSP?
I initially really liked it. But the languages designers just skipped over countless years of achievements in language design and implemented a C with garbage collection, with interfaces and a baked in CSP runtime.
If you read a bit in the groups / release notes, they were just too lazy to implement generics. Or it was too hard.
Go's ecosystem is really weak (for example, barely any library does proper versioning or any release procedure at all).
I think that is at least part due to the difficulty of writing clean, generic code. And the lack of proper packaging.
The lack of features is not a selling point, even if they try.