Two recent Go articles
IntroductionGo at GoogleGo at the Google Developers AcademyIntroduction 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...
View ArticleThe path to Go 1
In July 2012, Rob Pike and I presented a talk at OSCON titled The path to Go 1. In it we explain how Go 1 came to be, and outline the process by which Go was refined and stabilized to become the...
View ArticleGo 1.1 is released
It is our great pleasure to announce the release of Go 1.1. In March last year we released Go 1.0, and since then we have released three minor "point releases". The point releases were made to fix...
View ArticleAdvanced Go Concurrency Patterns
At Google I/O a year ago Rob Pike presented Go Concurrency Patterns, an introduction to Go's concurrency model. Last week, at I/O 2013, Go team member Sameer Ajmani continued the story with Advanced...
View ArticleA conversation with the Go team
At Google I/O 2013, several members of the Go team hosted a "Fireside chat." Robert Griesemer, Rob Pike, David Symonds, Andrew Gerrand, Ian Lance Taylor, Sameer Ajmani, Brad Fitzpatrick, and Nigel Tao...
View ArticleGo and the Google Cloud Platform
Introduction In 2011 we announced the Go runtime for App Engine. Since then, we have continued to improve the Go App Engine experience, and generally improved Go support for the Google Cloud Platform....
View ArticleIntroducing the Go Race Detector
IntroductionRace conditions are among the most insidious and elusive programming errors. They typically cause erratic and mysterious failures, often long after the code has been deployed to production....
View ArticleThe first Go program
Brad Fitzpatrick and I (Andrew Gerrand) recently started restructuringgodoc, and it occurred to me that it is one of the oldest Go programs. Robert Griesemer started writing it back in early 2009, and...
View ArticleArrays, slices (and strings): The mechanics of 'append'
Introduction One of the most common features of procedural programming languages is the concept of an array. Arrays seem like simple things but there are many questions that must be answered when...
View ArticleStrings, bytes, runes and characters in Go
Introduction The previous blog post explained how slices work in Go, using a number of examples to illustrate the mechanism behind their implementation. Building on that background, this post discusses...
View ArticleFour years of Go
Today marks the fourth anniversary of Go as an open source project. Rather than talk about our technical progress (there'll be much to talk about when we release Go 1.2 in a couple of weeks) we...
View ArticleText normalization in Go
Introduction An earlier post talked about strings, bytes and characters in Go. I've been working on various packages for multilingual text processing for the go.text repository. Several of these...
View ArticleGo 1.2 is released
We are pleased to announce the release of Go 1.2, the latest stable version of the Go Programming Language. Binary distributions may be downloaded from theusual place or if you prefer tocompile from...
View ArticleThe cover story
Introduction From the beginning of the project, Go was designed with tools in mind. Those tools include some of the most iconic pieces of Go technology such as the documentation presentation toolgodoc,...
View ArticleInside the Go Playground
Introduction In September 2010 we introduced the Go Playground, a web service that compiles and executes arbitrary Go code and returns the program output. If you're a Go programmer then you have...
View ArticleGo on App Engine: tools, tests, and concurrency
Background When we launched Go for App Engine in May 2011 the SDK was just a modified version of the Python SDK. At the time, there was no canonical way to build or organize Go programs, so it made...
View ArticleGo talks at FOSDEM 2014
Introduction At FOSDEM on the 2nd of February 2014 members of the Go community presented a series of talks in the Go Devroom. The day was a huge success, with 13 great talks presented to a consistently...
View ArticleGo Concurrency Patterns: Pipelines and cancellation
Introduction Go's concurrency primitives make it easy to construct streaming data pipelines that make efficient use of I/O and multiple CPUs. This article presents examples of such pipelines,...
View ArticleThe Go Gopher
The Go gopher is an iconic mascot and one of the most distinctive features of the Go project. In this post we'll talk about his origins, evolution, and behavior. About 15 years ago—long before the Go...
View ArticleGopherCon 2014 Wrap Up
In April this year 700 gophers descended upon Denver to attend GopherCon, the world's first large-scale Go conference, organized entirely by the community. The three day event featured 24 talks and...
View Article