Half a decade with Go
10 Nov 2014

Andrew Gerrand
adg@golang.org

* Introduction

Five years ago we launched the Go project. It seems like only yesterday that we
were preparing the initial public release: our
[[https://web.archive.org/web/20091112094121/http://golang.org/][website]] was
a lovely shade of yellow, we were calling Go a "systems language", and you had
to terminate statements with a semicolon and write Makefiles to build your
code. We had no idea how Go would be received. Would people share our vision
and goals? Would people find Go useful?

At launch, there was a flurry of attention. Google had produced a new
programming language, and everyone was eager to check it out. Some programmers
were turned off by Go's conservative feature set—at first glance they saw
"nothing to see here"—but a smaller group saw the beginnings of an ecosystem
tailored to their needs as working software engineers. These few would form the
kernel of the Go community.

.image 5years/gophers5th.jpg _ 850

[[/gopher][_Gopher_]] _illustration_by_ [[http://reneefrench.blogspot.com.au/][_Renee_French_]]

After the initial release, it took us a while to properly communicate the
goals and design ethos behind Go. Rob Pike did so eloquently in his 2012 essay
[[http://talks.golang.org/2012/splash.article][_Go_at_Google:_Language_Design_in_the_Service_of_Software_Engineering_]] and
more personally in his blog post
[[http://commandcenter.blogspot.com.au/2012/06/less-is-exponentially-more.html][_Less_is_exponentially_more_]].
Andrew Gerrand's
[[http://vimeo.com/53221560][_Code_that_grows_with_grace_]]
([[http://talks.golang.org/2012/chat.slide][slides]]) and
[[https://www.youtube.com/watch?v=dKGmK_Z1Zl0][_Go_for_Gophers_]]
([[http://talks.golang.org/2014/go4gophers.slide][slides]]) give a
more in-depth, technical take on Go's design philosophy.

Over time, the few became many. The turning point for the project was the
release of Go 1 in March 2012, which provided a stable language and standard
library that developers could trust. By 2014, the project had hundreds of core
contributors, the ecosystem had countless [[https://godoc.org/][libraries and tools]]
maintained by thousands of developers, and the greater community had
many passionate members (or, as we call them, "gophers"). Today, by our current
metrics, the Go community is growing faster than we believed possible.

Where can those gophers be found? They are at the many Go events that are
popping up around the world. This year we saw several dedicated Go conferences:
the inaugural [[http://blog.golang.org/gophercon][GopherCon]] and
[[http://www.dotgo.eu/][dotGo]] conferences in Denver and Paris, the
[[http://blog.golang.org/fosdem14][Go DevRoom at FOSDEM]] and two more
instances of the biannual [[https://github.com/GoCon/GoCon][GoCon]] conference
in Tokyo. At each event, gophers from around the globe eagerly presented their
Go projects. For the Go team, it is very satisfying to meet so many programmers
that share our vision and excitement.

.image 5years/conferences.jpg

_More_than_1,200_gophers_attended_GopherCon_in_Denver_and_dotGo_in_Paris._

There are also dozens of community-run
[[https://golang.org/wiki/GoUserGroups][Go User Groups]] spread across cities
worldwide. If you haven't visited your local group, consider going along. And
if there isn't a group in your area, maybe you should
[[https://blog.golang.org/getthee-to-go-meetup][start one]]?

Today, Go has found a home in the cloud. Go arrived as the industry underwent a
tectonic shift toward cloud computing, and we were thrilled to see it quickly
become an important part of that movement. Its simplicity, efficiency, built-in
concurrency primitives, and modern standard library make it a great fit for
cloud software development (after all, that's what it was designed for).
Significant open source cloud projects like
[[https://www.docker.com/][Docker]] and
[[https://github.com/GoogleCloudPlatform/kubernetes][Kubernetes]] have been
written in Go, and infrastructure companies like Google, CloudFlare, Canonical,
Digital Ocean, GitHub, Heroku, and Microsoft are now using Go to do some heavy
lifting.

So, what does the future hold? We think that 2015 will be Go's biggest year yet.

Go 1.4—in addition to its [[http://tip.golang.org/doc/go1.4][new features and fixes]]—lays
the groundwork for a new low-latency garbage collector and support for running
Go on mobile devices. It is due to be released on December 1st 2014.
We expect the new GC to be available in Go 1.5, due June 1st 2015, which will
make Go appealing for a broader range of applications.
We can't wait to see where people take it.

And there will be more great events, with [[http://gothamgo.com/][GothamGo]] in
New York (15 Nov), another Go DevRoom at FOSDEM in Brussels (Jan 31 and Feb 1;
[[https://groups.google.com/d/msg/golang-nuts/1xgBazQzs1I/hwrZ5ni8cTEJ][get involved!]]),
[[http://www.gophercon.in/][GopherCon India]] in Bengaluru (19-21 Feb),
the original [[http://gophercon.com/][GopherCon]] back at Denver in July, and
[[http://www.dotgo.eu/][dotGo]] on again at Paris in November.

The Go team would like to extend its thanks to all the gophers out there.
Here's to the next five years.

_To_celebrate_5_years_of_Go,_over_the_coming_month_the_
[[http://blog.gopheracademy.com/][_Gopher_Academy_]]
_will_publish_a_series_of_articles_by_prominent_Go_users._Be_sure_to_check_out_
[[http://blog.gopheracademy.com/][_their_blog_]]
_for_more_Go_action._
