Rex Kerr
1 min readDec 18, 2022

--

I think the article is quite fair, and captures the situation with Go reasonably well.

But if you step back a moment, the answer offered is, "Go is good because you're not that smart or ambitious (or don't have much time to learn anything new), and you're gonna work as a replaceable cog in a programming machine made from a whole bunch of other people anyway, so, yeah, may as well get to like the lowest-common-denominator-accessible toolchain for that."

It's really not a ringing endorsement once you think about it.

There are all sorts of things it doesn't claim because it can't: Go doesn't provide more powerful abstractions, it isn't more maintainable, it doesn't have a better package system, you can't write correct code in it faster, it doesn't have a better way to handle errors, etc. etc..

Go's superpower is really just that it does a passingly competent job in enough different areas that you've got a good chance at escaping disaster (python: it takes forever disaster; C/C++: footgun disaster; Haskell: I-am-spending-all-my-time-learning-category-theory-now-and-don't-care-about-the-original-problem-anymore-disaster; etc.) and doesn't ask much of you to get to that point.

It's a very weird, yet surprisingly useful, superpower.

It's not one I need personally, though. The time I would have wasted struggling through Go's non-disastrous limitations I already invested in learning Rust and I've not regretted that one bit.

--

--

Rex Kerr
Rex Kerr

Written by Rex Kerr

One who rejoices when everything is made as simple as possible, but no simpler. Sayer of things that may be wrong, but not so bad that they're not even wrong.

Responses (1)