# A preview of Go version 1
5 Oct 2011
Tags: go1, release
Summary: What the Go team is planning for Go version 1.
OldURL: /preview-of-go-version-1

Russ Cox

##

We want to be able to provide a stable base for people using Go.
People should be able to write Go programs and expect that they will continue
to compile and run without change,
on a timescale of years.
Similarly, people should be able to write books about Go,
be able to say which version of Go the book is describing,
and have that version number still be meaningful much later.
None of these properties is true for Go today.

We propose to issue a Go release early next year that will be called “Go version 1”,
Go 1 for short, that will be the first Go release to be stable in this way.
Code that compiles in Go version 1 should,
with few exceptions, continue to compile throughout the lifetime of that version,
as we issue updates and bug fixes such as Go version 1.1, 1.2, and so on.
It will also be maintained with fixes for bugs and security flaws even as
other versions may evolve.
Also, production environments such as Google App Engine will support it
for an extended time.

Go version 1 will be a stable language with stable libraries.
Other than critical fixes, changes made to the library and packages for versions 1.1,
1.2 and so on may add functionality but will not break existing Go version 1 programs.

Our goal is for Go 1 to be a stable version of today’s Go,
not a wholesale rethinking of the language.
In particular, we are explicitly resisting any efforts to design new language
features “by committee.”

However, there are various changes to the Go language and packages that
we have intended for some time and prototyped but have not deployed yet,
primarily because they are significant and backwards-incompatible.
If Go 1 is to be long-lasting, it is important that we plan,
announce, implement, and test these changes as part of the preparation of Go 1,
rather than delay them until after it is released and thereby introduce
divergence that contradicts our goals.

Today, we are publishing our preliminary [plan for Go 1](https://docs.google.com/document/pub?id=1ny8uI-_BHrDCZv_zNBSthNKAMX_fR_0dc6epA6lztRE)
for feedback from the Go community.
If you have feedback, please reply to the [thread on the golang-nuts mailing list](http://groups.google.com/group/golang-nuts/browse_thread/thread/badc4f323431a4f6).
