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