I want off Mr. Golang’s Wild Ride (2020)
The author fundamentally misunderstands language design. He picks an arbitrary design constraint, in this case correctness, and argues that any language that does not provide 100% correctness is bad. He uses Rust for his examples, a language that has correctness as one of its top design goals, and contrasts it with Go, for which correctness is not that important. So <i>of course</i> Rust will come out on top when the only metric you care about is correctness.<p>As usual with such one-sided rants, the downsides to the supposed clearly right alternative are omitted. How long would it take for me to learn Rust + write a given program vs Go? How long does it take to model problems 100% correctly vs merely well-enough?<p>&gt; It [Go] constantly lies about how complicated real-world systems are, and optimize for the 90% case, ignoring correctness.<p>Yes, exactly. Optimizing for the 90% case, <i>not</i> simplicity, is the primary design goal of Go. In other words, pragmatism or the 80&#x2F;20 rule. Go attempts to provide 80% of the benefit for only 20% of the cost.<p>This is pervasive throughout the language:<p>- the author&#x27;s examples,<p>- a GC,<p>- merely good-enough error handling.<p>The sweet spot Go attempts to strike between speed of coding, correctness, safety, performance, and mental overhead is the reason it&#x27;s so polarizing. You may like this approach or not, but let&#x27;s not pretend that Go is all bad or that say Rust is some perfect holy grail that will save us all.