Google announced version 1 of its Go language (Go 1),
an open source general-purpose language suitable for uses ranging from application development to systems programming.
Go 1 is the first release of Go that is available in supported binary distributions. They are available for Linux, FreeBSD, Mac OS X and Windows.
"The driving motivation for Go 1 is stability for its users, Go team member Andrew Gerrand on the Go language blog. "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."
Forward compatibility is also part of stability. Code that compiles in Go 1 should, with few exceptions, continue to compile and run throughout the lifetime of that version, even as Google issues updates and bug fixes such as Go version 1.1, 1.2, and so on.
In Google Go 1, the developers focused on cleaning up problems and inconsistencies and improving portability. Changes provide significant improvements to the language and libraries but sometimes introduce incompatibilities for old programs. Fortunately, the go fix tool
can automate much of the work needed to bring programs up to the Go 1 standard.
Go 1 introduces changes to the language (such as new types for Unicode characters and errors) and the standard library (such as the new time package and renamings in the strconv package). Also, the package hierarchy has been rearranged to group related items together, such as moving the networking facilities, for instance the rpc package, into subdirectories of net. A complete list of changes is documented in the Go 1 release notes
Go's team also restructured the Go tool suite around the new go command
, a program for fetching, building, installing and maintaining Go code. The go command eliminates the need for Makefiles to write Go code because it uses the Go program source itself to derive the build instructions.
Finally, the release of Go 1 triggers a new release of the Google App Engine SDK
. 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.
Everything you need to get started is at golang.org.