Seven years of Go
10 Nov 2016

The Go Team
rsc@golang.org

* Seven years of Go

.html gopherbelly.html

Today marks seven years since we open-sourced our preliminary sketch of Go.
With the help of the open source community, including more than a thousand
individual contributors to the Go source repositories,
Go has matured into a language used all over the world.

The most significant user-facing changes to Go over the past year are the
addition of built-in support for
[[https://www.youtube.com/watch?v=FARQMJndUn0#t=0m0s][HTTP/2]] in
[[https://golang.org/doc/go1.6][Go 1.6]] and the integration of the
[[https://blog.golang.org/context][context package]] into the standard library in [[https://golang.org/doc/go1.7][Go 1.7]].
But we’ve been making many less visible improvements.
Go 1.7 changed the x86-64 compiler to use a new SSA-based back end,
improving the performance of most Go programs by 10–20%.
For Go 1.8, planned for release next February,
we have changed the compilers for the other architectures to use the new back end too.
We’ve also added new ports, to Android on 32-bit x86, Linux on 64-bit MIPS,
and Linux on IBM z Systems.
And we’ve developed new garbage-collection techniques that reduce typical
“stop the world” pauses to [[https://golang.org/design/17503-eliminate-rescan][under 100 microseconds]].
(Contrast that with Go 1.5’s big news of [[https://blog.golang.org/go15gc][10 milliseconds or less]].)

This year kicked off with a global Go hackathon,
the [[https://blog.golang.org/gophergala][Gopher Gala]], in January.
Then there were [[https://golang.org/wiki/Conferences][Go conferences]] in India and Dubai in February,
China and Japan in April, San Francisco in May, Denver in July,
London in August, Paris last month, and Brazil this past weekend.
And GothamGo in New York is next week.
This year also saw more than 30 new [[https://golang.org/wiki/GoUserGroups][Go user groups]],
eight new [[http://www.womenwhogo.org/][Women Who Go]] chapters,
and four [[https://golangbridge.org/][GoBridge]] workshops around the world.

We continue to be overwhelmed by and grateful for
the enthusiasm and support of the Go community.
Whether you participate by contributing changes, reporting bugs,
sharing your expertise in design discussions, writing blog posts or books,
running meetups, helping others learn or improve,
open sourcing Go packages you wrote, or just being part of the Go community,
the Go team thanks you for your help, your time, and your energy.
Go would not be the success it is today without you.

Thank you, and here’s to another year of fun and success with Go!
