> Just like synchronization, Go scales poorly with project complexity and aspirations.
I've had the opposite experience. Compared to C++ codebases I've worked on, Golang has way less "complexity per feature".
> It is unable to efficiently take advantage of beefy many-core nodes
Go had the best built-in concurrency primitives of any language I've used (python, java, rust, c++/c).
> its GC is bad at achieving high throughput
Isn't this just the nature of using GC? You give up control over when some work gets done, of course it affects throughput.
> incapable of providing zero-cost abstractions
ime, bad abstractions slow systems of any appreciable complexity a lot more than the cost of the abstractions in latency.
> non-zero cost abstractions end up being more expensive than in other compiled languages.
Do you consider Java a compiled language? I mean, of course its slower than rust and c/++, as it has a more complex/abstracted runtime. But last I heard, it was on par, or even faster, than java.