| # 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). |