The Most Exciting Feature of Go 1.8
You might think that the built-in support for gracefully shutting down http servers is reason enough to be excited for the upcoming Go 1.8. It could also be the proposed sub-millisecond GC pauses. Heck, if you’re having refactoring issues on a Google scale then it could be the controversial addition of alias declarations.
Based on my experience, working with small teams and people new to Go, Go 1.8 shipping with a default GOPATH
is going to be the most groundbreaking of all new features.
One of the things I still miss from publishing command-line packages on NPM is the end-user experience.
brew install node
npm install -g myapp
myapp
This is assuming you’re using macOS with Homebrew, but the experience is not that different on other operating systems. There’s no mucking around with PATH
variables at all. You don’t even have to know where the package installed to… it’s just there, ready to use.
The addition of a default GOPATH
in Go 1.8 will bring the experience much closer to that of Node & NPM. The only remaining friction is that the the default $GOPATH/bin
directory won’t be added to a user’s $PATH
. Hopefully this can be addressed at some stage, either by the community or the Go team.
Installing and using Go commands as of 1.8 could now be as simple as this:
brew install go
go get github.com/foo/bar
~/go/bin/bar
Go 1.8 is going to be a great release which will continue to push the language, runtime and toolchain forward. If you’re as excited as me then you can keep an eye on progress using the Go 1.8 GitHub milestone.
Soon gophers won't need to worry about #gopath and that's awesome! 🎉#golang https://t.co/hS1aupEPFN pic.twitter.com/oxkGIeAsPJ
— francesc (@francesc) October 26, 2016
Special thanks to Francesc Campoy for implementing this feature 💖