Google has released version 1.0 of its Go programming language.
Google initially introduced Go as an "experimental language" in 2009 and has now come to a 1.0 release of the technology. At the time of its introduction, Google described Go as a language that attempts to combine the development speed of working in a dynamic language like Python with the performance and safety of a compiled language like C or C++.
In a March 28 blog post, Andrew Gerrand, a Google software engineer and core contributor to the Go language, wrote:
""Today marks a major milestone in the development of the Go programming language. We're announcing Go version 1, or Go 1 for short, which defines a language and a set of core libraries to provide a stable foundation for creating reliable products, projects, and publications.""
Go 1 is the first release of Go that is available in supported binary distributions, Gerrand said. "They are available for Linux, FreeBSD, Mac OS X and, we are thrilled to announce, Windows," he said.
Moreover, Gerrand said 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, he said. 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.
"Go 1 is a representation of Go as it is used today, not a major redesign," Gerrand said. "In its planning, we focused on cleaning up problems and inconsistencies and improving portability. There had long been many changes to Go that we had designed and prototyped but not released because they were backwards-incompatible. Go 1 incorporates these changes, which 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 and the standard library, Gerrand said. 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, Gerrand said.
Finally, the release of Go 1 triggers a new release of the Google App Engine SDK, Gerrand said. "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," he said.