| # Go 1.4 is released |
| 10 Dec 2014 |
| Summary: Go 1.4 adds support for Android, go generate, optimizations, and more. |
| |
| Andrew Gerrand |
| adg@golang.org |
| |
| ## |
| |
| Today we announce Go 1.4, the fifth major stable release of Go, arriving six |
| months after our previous major release [Go 1.3](https://blog.golang.org/go1.3). |
| It contains a small language change, support for more operating systems |
| and processor architectures, and improvements to the tool chain and libraries. |
| As always, Go 1.4 keeps the promise of compatibility, and almost everything |
| will continue to compile and run without change when moved to 1.4. |
| For the full details, see the [Go 1.4 release notes](https://golang.org/doc/go1.4). |
| |
| The most notable new feature in this release is official support for Android. |
| Using the support in the core and the libraries in the |
| [golang.org/x/mobile](https://godoc.org/golang.org/x/mobile) repository, |
| it is now possible to write simple Android apps using only Go code. |
| At this stage, the support libraries are still nascent and under heavy development. |
| Early adopters should expect a bumpy ride, but we welcome the community to get involved. |
| |
| The language change is a tweak to the syntax of for-range loops. |
| You may now write "for range s {" to loop over each item from s, |
| without having to assign the value, loop index, or map key. |
| See the [release notes](https://golang.org/doc/go1.4#forrange) for details. |
| |
| The go command has a new subcommand, go generate, to automate the running of |
| tools to generate source code before compilation. |
| For example, it can be used to automate the generation of String methods for |
| typed constants using the |
| [new stringer tool](https://godoc.org/golang.org/x/tools/cmd/stringer/). |
| For more information, see the [design document](https://golang.org/s/go1.4-generate). |
| |
| Most programs will run about the same speed or slightly faster in 1.4 than in |
| 1.3; some will be slightly slower. |
| There are many changes, making it hard to be precise about what to expect. |
| See the [release notes](https://golang.org/doc/go1.4#performance) for more discussion. |
| |
| And, of course, there are many more improvements and bug fixes. |
| |
| In case you missed it, a few weeks ago the sub-repositories were moved to new locations. |
| For example, the go.tools packages are now imported from "golang.org/x/tools". |
| See the [announcement post](https://groups.google.com/d/msg/golang-announce/eD8dh3T9yyA/HDOEU_ZSmvAJ) for details. |
| |
| This release also coincides with the project's move from Mercurial to Git (for |
| source control), Rietveld to Gerrit (for code review), and Google Code to |
| Github (for issue tracking and wiki). |
| The move affects the core Go repository and its sub-repositories. |
| You can find the canonical Git repositories at |
| [go.googlesource.com](https://go.googlesource.com), |
| and the issue tracker and wiki at the |
| [golang/go GitHub repo](https://github.com/golang/go). |
| |
| While development has already moved over to the new infrastructure, |
| for the 1.4 release we still recommend that users who |
| [install from source](https://golang.org/doc/install/source) |
| use the Mercurial repositories. |
| |
| For App Engine users, Go 1.4 is now available for beta testing. |
| See [the announcement](https://groups.google.com/d/msg/google-appengine-go/ndtQokV3oFo/25wV1W9JtywJ) for details. |
| |
| From all of us on the Go team, please enjoy Go 1.4, and have a happy holiday season. |