blob: 42a2fa54736a446a7a3e5f80fd6de9f9f615734e [file] [log] [blame]
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
[[http://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._