> it really is not better than what you can do in Java or C#
Theoretically, sure. If you _really_ know your stuff.
However, you can naively pack hundreds of thousands of go routines into a single thread in a go routine after a week or two of using it.
I'm not saying go is better, I'm just saying Java copied this abstraction for a reason: doing it right is hard