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