And yet in practice Go is delightfully robust. It’s not THE most robust—it’s not Rust or Haskell[^1]—but (in my experience) it’s certainly less buggy than Java and friends, C/C++, or virtually any dynamic language. It’s quite possible that copying is a liability as you claim, and that OOP, generics, and/or dynamic typing are simply greater liabilities, but I think that means you should evaluate languages on balance and not on the presence or absence of one feature or idiom.
[^1]: Rust and Haskell pay for their marginal increase in robustness with a massive decrease in productivity.
[^1]: Rust and Haskell pay for their marginal increase in robustness with a massive decrease in productivity.