Search giant Google has used its developer blog and coding portal to detail the formal arrival of its Go open source programming language, which this week has reached version 1. First initiated back in November 2009, the Go project has enjoyed contributions from more than 200 programmers who have between them input code, tests, and documentation.
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.
Google's Scott Knaster has explained that the Go programming language (and its set of core libraries) version 1 will be affectionately known as Go 1 for short. The Go team has reportedly spent "months of work" refining the specification, improving the implementation, increasing portability, and reworking and adjusting the standard library.
Google says that code that compiles in Go 1 should, with just a few exceptions, continue to compile and run throughout the lifetime of that version, even as the company issues updates and bug fixes (such as Go version 1.1, 1.2, and so on).
According to Knaster, "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. That document is an essential reference for programmers migrating code from earlier versions of Go."
"We 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. No more build scripts!"
This language release also sets in motion a new release of the Google App Engine SDK — the company explains that a similar process of revision and stabilization has been applied to the App Engine libraries, thus providing (in theory) a base for developers to build programs for App Engine that will run for years.