The Value in Go’s Simplicity
Okay, so there&#x27;s definitely simplicity. I agree that this is in many ways a nice change from some of the more popular languages, which can get a bit complex and heavy, with a focus on features that are nice in isolation but add up to a surprisingly difficult architecture to comprehend at the global level. I just don&#x27;t think Go gets the balance right.<p>There are some parts of the language that are such a joy to use – C interop is simple and elegant, the concurrency story is great, the standard library is great, and in contrast to some other people, I think the error handling is also a nice example of simple and effective design. The wider tooling system is decently usable (with the exception of gofmt, as mentioned in the article, which I think is the single best tool I&#x27;ve ever used in any language).<p>But &quot;simplicity&quot; in Go-land seems sometimes to be the enemy of <i>expressiveness</i>. The lack of abstractions over operations like filtering, mapping, or removing items from a collection is incredibly irritating for such a common operation – instead of immediately obvious actions, there are tedious manual loops where I end up having to read like 10 lines of code to figure out &quot;oh this just removes something from a list&quot;. The use of zero values is a crime against nature. The type system is shameful in practice compared to other modern languages, with <i>so much code</i> just being &quot;just slap an interface{} in there and we can all pretend this isn&#x27;t a disaster waiting to happen&quot;. It feels like such a lost opportunity to exploit a richer type system to eliminate whole classes of common errors (which are predictably the ones I keep making in Go code.)<p>I guess it&#x27;s frustrating that a language—which is relatively well-designed and intended to be simple—too often makes things <i>more complicated overall</i> by making fallible humans do things that computers are better and more reliable at. I&#x27;ll keep using it, because it fills a really nice niche that no other language is quite suitable for. But I&#x27;ll keep being a bit annoyed about it, too.