Go version 1 is released
28 Mar 2012
Tags: release, go1

Andrew Gerrand

* Introduction

.image go-version-1-is-released_gophermega.jpg
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.
They are available for Linux, FreeBSD, Mac OS X and,
we are thrilled to announce, Windows.

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.

Forward compatibility is 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 we issue updates and bug fixes such as Go version 1.1, 1.2, and so on.
The [[https://golang.org/doc/go1compat.html][Go 1 compatibility document]]
explains the compatibility guidelines in more detail.

Go 1 is a representation of Go as it is used today,
not a major redesign.
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 [[https://golang.org/cmd/go/#Run_go_tool_fix_on_packages][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 [[https://golang.org/doc/go1.html#rune][Unicode characters]]
and [[https://golang.org/doc/go1.html#errors][errors]]) and the standard
library (such as the new [[https://golang.org/doc/go1.html#time][time package]]
and renamings in the [[https://golang.org/doc/go1.html#strconv][strconv package]]).
Also, the package hierarchy has been rearranged to group related items together,
such as moving the networking facilities,
for instance the [[https://golang.org/pkg/net/rpc/][rpc package]],
into subdirectories of net.
A complete list of changes is documented in the [[https://golang.org/doc/go1.html][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 [[https://golang.org/doc/go1.html#cmd_go][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!

Finally, the release of Go 1 triggers a new release of the [[https://developers.google.com/appengine/docs/go][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.

Go 1 is the result of a major effort by the core Go team and our many contributors
from the open source community.
We thank everyone who helped make this happen.

There has never been a better time to be a Go programmer.
Everything you need to get started is at [[https://golang.org/][golang.org]].
