The State of Go
Where we are in February 2015
Released in December 2014.
A few important things:
Lots of behind-the-scenes work:
In December we migrated the Go repositories from Mercurial to Git.
Also moved to new development infrastructure:
A big deal for Go contributors, but not important to Go users.4
Coming from Gerrit, Rietveld, or Google's internal code review systems,
GitHub's pull request system is lacking.
Go 1.5 is scheduled for release in August 2015 (was June).
(Previous cycle clashed with holidays and other calendrical events.)9
gc tool chain is being converted from C to Go.
An ongoing process, started early 2014.
Russ Cox says "It'll be done by March ."
link tool to replace
asm tool to replace
gc to replace
Go 1.5 will have no C code in the tool chain or runtime.10
You will need Go 1.4 to build Go 1.5 and above.
(But you will not need a C compiler!)
As a user, put Go 1.4 in
$HOME/go1.4 (or set
New OS or architecture ports will need to cross-compile.
If you use a binary distribution of Go, you don't need to do anything.11
Work began on a new, concurrent GC during the Go 1.4 dev cycle.
On track for Go 1.5.12
Brad Fitzpatrick has implemented an
HTTP/2 server for Go.
Will be in the standard library by Go 1.soon.
Go servers that use
net/http will get
HTTP/2 for free.
Currently in Brad's GitHub:
See it in action:13
David Crawshaw, Hana Kim, Minux, and Burcu Dogan have been working on Go for
Can build Android apps with Go 1.4
(if you can work out the Android build system).
For Go 1.5:
Go 1.5 will support PowerPC 64 and (maybe) ARM64.
PowerPC 64 is basically done; builder running, passes tests.
ARM64 development ongoing.
Hope to have a dev.arm64 branch in the main repo for Go 1.5.
Stretch goal is merging it into master.
See work in progress for ARM64 here:15
Dmitry Vyukov has implemented a
It collects data to produce diagrams of process execution.
Front end is the Android/Chrome trace-viewer. (github.com/google/trace-viewer)16
Alan Donovan and others have been working on a tools for analyzing and
manipulating Go source code.
Available in the
callgraph: display the call graph of a Go program.
gomvpkg: moves go packages, updating import declarations.
gorename: type-safe renaming of identifiers in Go source code.
sockdrawer: a tool for automatically splitting packages.
Brad Fitzpatrick and Andrew Gerrand have been hacking away at our continuous
Now running Linux, FreeBSD, OpenBSD, and Plan 9 builders
on Google Compute Engine. (OS X, Windows coming soon.)
Spin up builders to do work, spin up many in parallel.
Gives us results much faster.
Up next: trybots to test pending changes.
Also: gomote! (Demo)18
More to be announced.20
A global Go hackathon, in January 2015 (last week).
Teams compete to produce Go apps, judged by "usefulness, creativity, completeness, and how well they showcase Go's strengths."
Also physical hackathons around the world: from San Francisco to Stockholm to Tokyo.
Cool prizes, including a Chromebook Pixel, a Raspberry Pi, and a trip to Colima, Mexico.
The winners have been announced.21
Lots of Go meetups popping up all over the world.
Find one near you:22