Go is still one of the most difficult and counter intuitive build systems ever devised. Usually you’d expect a project to build out of the box. Go seems to take a stance of “Haha nope, get ready to figure out which version of the standard library this 4 month old project was written against, then have fun trying to update it to the latest.” I like the language though. Their green threads are still the best.
From Go's 1.0 compatibility guarantee[0]: > It is intended that programs written to the Go 1 specification will continue to compile and run correctly, unchanged, over the lifetime of that specification. [...] Go programs that work today should continue to work even as future "point" releases of Go 1 arise (Go 1.1, Go 1.2, etc.). I've found this to be upheld in practice, especially so for the standard library. I have…
Even when bringing in a number of third-party packages, the only trouble I’ve had building Go projects has been in Windows (which is often treated by Gophers as a second-class platform).