Google has released Go 1, the programming language that’s been described as "Python meets C++". It promises stability and easy installation.
Google has described Go as combining the performance and security of a compiled language like C++ with the speed of a dynamic language like Python.
Go 1 consists of the language and a set of core libraries, and is the first release that is available in supported binary distributions. They are available for Linux, FreeBSD, Mac OS X and Windows. This makes trying the language out much easier.
In a blog post announcing the release, Andrew Gerrard of the Go team says that the driving motivation for Go 1 is stability for its users:
“People who write Go 1 programs can be confident that those programs will continue to compile and run without change, in many environments, on a time scale of years. Similarly, authors who write books about Go 1 can be sure that their examples and explanations will be helpful to readers today and into the future.”
He added that forward compatibility is part of stability.
According to Gerrard, Go 1 is a representation of Go as it is used today, not a major redesign, and the development team has focused on cleaning up problems and inconsistencies and improving portability.
Some of the changes may mean older programs may have incompatibilities, but there’s a utility called Go fix that can automate much of the work needed to bring programs up to the Go 1 standard.
Some changes have been introduced, including new types for Unicode characters and errors. You can read the full list of changes at golang.org.
One change that will be obvious to users of previous versions is the restructuring of the Go tool suite around the new go command, a program for fetching, building, installing and maintaining Go code. This means you no longer need to use Makefiles to write Go code.
Alongside Go 1, Google has also released a new version of the Google App Engine SDK. Gerrard says that a similar process of revision and stabilization has been applied to the App Engine libraries, providing a base for developers to build programs for App Engine that will run for years.
The real question of course is what is Go for?
It is worth reminding ourselves what the stated motivation for Go was: