I started a little over half a year ago with Go, coming from Python like the author. I definitely enjoy working in a strongly typed language and Go is usually quite fun to work with. This week I’m actually implementing a concurrency pattern for a ‘real’ problem, so eager to see how that works irl. I’ve yet to come across something where generics really make sense, but definitely curious to explore that with a real case as well.
Interesting article. I still find error handling in Go to be really awkward and repetitive to write. It’s one of my biggest complaints when I have to write code in Go.
Nice to see a measured (though somewhat pro go) article about a big language’s strengths and weaknesses from someone whose been real world using it for long enough to experience the evolution of the language.
I’ve always liked go, and also think it made fundamentally good decisions and has evolved in a way that respects the original philosophy (e.g. adding generics, but only after massive consideration).
Reddit had an enormous hate totem for go, more than virtually any other language imo, and I always thought that was strange. Curious what people here think.
As someone that unironically wants to rewrite everything in Rust, but does Java for a living, Go started off horrible, but has become OK. Especially for that sweet spot between “too big for a shell/python script”, but “not big enough to need perfect type checking/advanced tooling”, Go is decent. I recently clobbered together a CLI tool for a customer that does some custom stuff involving S3 files. I disagree with it’s biggest fans that it’s really simple. Some of the syntax seems very weird, the error handling (while better than exceptions) is still extremely tedious and weak.
Honestly, the fact that the creators thought they knew better than EVERYONE ELSE that they didn’t need generics, and argued against it FOR YEARS, just to finally add them now tells me everything I need to know about how they think of their users, and about whether they react in a timely and reasonable manner to needs of the community.