I like the language though. Their green threads are still the best.
I like the language though. Their green threads are still the best.
> 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 yet to come across a case where I was concerned with which "version" of the standard library some project was written against. Are you perhaps talking about non-stdlib packages?
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).
I'm currently working on building all the coreclr/corefx repos for .NET Core. Their build system is incredibly convoluted.
Look, maybe the stdlib is rock solid. But every time I try to build a Go project, `go build` finds ten ways not to work.
Case in point: https://github.com/cretz/tor-dht-poc
Try building this. I have no idea what's wrong with it, but it doesn't work. It's cool tech, I want it, but I don't want to immerse myself in the world of hurt^WGo just to get it.
I did however at least attempt to fix the problem: https://github.com/cretz/tor-dht-poc/pull/2
Fortunately that's changing.
Go, not so much - it came out in 2012. Pip and CPAN and Gem had been around for years. Go’s lack of a sane packaging solution this far into its lifetime remains a serious weakness of an otherwise solid platform.
Because the Go team kept pushing the ridiculous idea that versioning doesn't matter.
> `go get` also works just fine if you point it at forked repositories that you control.
And at that point, what value does `go get` add?