| # Two recent Go articles |
| 6 Mar 2013 |
| Tags: google, talk, ethos |
| Summary: Two Go articles: “Go at Google: Language Design in the Service of Software Engineering” and “Getting Started with Go, App Engine and Google+ API” |
| |
| Andrew Gerrand |
| |
| ## Introduction |
| |
| In today's blog post I'd like to highlight a couple of recent articles about Go. |
| |
| ## Go at Google |
| |
| In October last year, Rob Pike presented a keynote at the ACM [SPLASH](http://splashcon.org/2012/) conference in Tucson. |
| The talk, titled [Go at Google](https://talks.golang.org/2012/splash.slide), |
| was a comprehensive discussion of the motivations behind Go. |
| Rob later expanded on his talk to produce an essay titled [Go at Google: Language Design in the Service of Software Engineering](http://talks.golang.org/2012/splash.article). |
| Here is the abstract: |
| |
| The Go programming language was conceived in late 2007 as an |
| answer to some of the problems we were seeing developing |
| software infrastructure at Google. The computing landscape |
| today is almost unrelated to the environment in which the |
| languages being used, mostly C++, Java, and Python, had been |
| created. The problems introduced by multicore processors, |
| networked systems, massive computation clusters, and the web |
| programming model were being worked around rather than |
| addressed head-on. Moreover, the scale has changed: today's |
| server programs comprise tens of millions of lines of code, |
| are worked on by hundreds or even thousands of programmers, |
| and are updated literally every day. To make matters worse, |
| build times, even on large compilation clusters, have |
| stretched to many minutes, even hours. |
| |
| Go was designed and developed to make working in this |
| environment more productive. Besides its better-known |
| aspects such as built-in concurrency and garbage collection, |
| Go's design considerations include rigorous dependency |
| management, the adaptability of software architecture as |
| systems grow, and robustness across the boundaries between |
| components. |
| |
| This article explains how these issues were addressed while building an efficient, |
| compiled programming language that feels lightweight and pleasant. |
| Examples and explanations will be taken from the real-world problems faced at Google. |
| |
| If you have wondered about the design decisions behind Go, |
| you may find your questions answered by [the essay](https://talks.golang.org/2012/splash.article). |
| It is recommended reading for both new and experienced Go programmers. |
| |
| ## Go at the Google Developers Academy |
| |
| At Google I/O 2012 the Google Developers team [launched](http://googledevelopers.blogspot.com.au/2012/06/google-launches-new-developer-education.html) the [Google Developers Academy](https://developers.google.com/academy/), |
| a program that provides training materials on Google technologies. |
| Go is one of those technologies and we're pleased to announce the first |
| GDA article featuring Go front and center: |
| |
| [Getting Started with Go, App Engine and Google+ API](https://developers.google.com/appengine/training/go-plus-appengine/) is |
| an introduction to writing web applications in Go. |
| It demonstrates how to build and deploy App Engine applications and make |
| calls to the Google+ API using the Google APIs Go Client. |
| This is a great entry point for Go programmers eager to get started with |
| Google's developer ecosystem. |