Go turns three
10 Nov 2012
Tags: community, birthday

Russ Cox

* Introduction

The Go open source project is
[[http://google-opensource.blogspot.com/2009/11/hey-ho-lets-go.html][three years old today]].

It's great to look at how far Go has come in those three years.
When we launched, Go was an idea backed by two implementations that worked on Linux and OS X.
The syntax, semantics, and libraries changed regularly as we reacted to feedback from users
and experience with the language.

Since the open source launch,
we've been joined by
[[http://tip.golang.org/CONTRIBUTORS][hundreds of external contributors]],
who have extended and improved Go in myriad ways,
including writing a Windows port from scratch.
We added a package management system
[[https://groups.google.com/d/msg/golang-nuts/8JFwR3ESjjI/cy7qZzN7Lw4J][goinstall]],
which eventually became the
[[http://golang.org/cmd/go/][go command]].
We also added
[[http://blog.golang.org/2011/07/go-for-app-engine-is-now-generally.html][support for Go on App Engine]].
Over the past year we've also given [[http://golang.org/doc/#talks][many talks]], created an [[http://tour.golang.org/][interactive introductory tour]]
and recently we added support for [[http://golang.org/pkg/strings/#pkg-examples][executable examples in package documentation]].

Perhaps the most important development in the past year
was the launch of the first stable version,
[[http://blog.golang.org/2012/03/go-version-1-is-released.html][Go 1]].
People who write Go 1 programs can now be confident that their programs will
continue to compile and run without change, in many environments,
on a time scale of years.
As part of the Go 1 launch we spent months cleaning up the
[[http://golang.org/doc/go1.html][language and libraries]]
to make it something that will age well.

We're working now toward the release of Go 1.1 in 2013. There will be some
new functionality, but that release will focus primarily on making Go perform
even better than it does today.

We're especially happy about the community that has grown around Go:
the mailing list and IRC channels seem like they are overflowing with discussion,
and a handful of Go books were published this year. The community is thriving.
Use of Go in production environments has also taken off, especially since Go 1.

We use Go at Google in a variety of ways, many of them invisible to the outside world.
A few visible ones include
[[https://groups.google.com/d/msg/golang-nuts/BNUNbKSypE0/E4qSfpx9qI8J][serving Chrome and other downloads]],
[[http://code.google.com/p/vitess/][scaling MySQL database at YouTube]],
and of course running the
[[http://golang.org/][Go home page]]
on [[https://developers.google.com/appengine/docs/go/overview][App Engine]].
Last year's
[[http://blog.golang.org/2011/12/from-zero-to-go-launching-on-google.html][Thanksgiving Doodle]]
and the recent
[[http://www.jamwithchrome.com/technology][Jam with Chrome]]
site are also served by Go programs.

Other companies and projects are using Go too, including
[[http://www.quora.com/Go-programming-language/Is-Google-Go-ready-for-production-use/answer/Kunal-Anand][BBC Worldwide]],
[[http://dave.cheney.net/wp-content/uploads/2012/08/august-go-meetup.pdf][Canonical]],
[[http://blog.cloudflare.com/go-at-cloudflare][CloudFlare]],
[[http://blog.golang.org/2011/04/go-at-heroku.html][Heroku]],
[[https://plus.google.com/114945221884326152379/posts/d1SVaqkRyTL][Novartis]],
[[http://backstage.soundcloud.com/2012/07/go-at-soundcloud/][SoundCloud]],
[[http://sorcery.smugmug.com/2012/04/06/deriving-json-types-in-go/][SmugMug]],
[[http://blog.golang.org/2011/12/building-stathat-with-go.html][StatHat]],
[[https://tinkercad.com/about/jobs][Tinkercad]],
and
[[https://golang.org/wiki/GoUsers][many others]].

Here's to many more years of productive programming in Go.
