Russel Winder's Website

London GoGathering 2015

Tuesday 2015-02-03 there was a London GoGathering at Google's Campus London. Shoreditch is definitely reinforcing it's position as the world's 'silicon ditch': The Ditch should become a well known location for computer-based systems activity. The room was more or less filled, most of the attenders were 'gophers', but some were "checking out" Go to see if it would suit their needs better than their current languages.

Andrew Gerrand kicked thing off, as well he should as the leader of the Go project! He reprised the session he did a few days earlier at Fosdem, which seemed fair enough as the current state of Go had changed very little in those few hours. The really big news, at least for me, was that Go 1.5 would be released later than originally planned (booo), but with the whole toolchain totally rewritten in Go, including the runtime (hoorayyyy). He introduced the agenda:

10:00 Welcome/Tea  
10:10 Andrew Gerrand The State of Go
10:50 Matt Heath Channeling Failure
11:30 Francesc Campoy JSON, interfaces, and go generate
12:10 Lunch  
13:00 David Crawshaw Go on Android
13:30 Brad Fitzpatrick HTTP2
14:20 Afternoon Tea  
14:40 John Graham-Cumming How Go spread at CloudFlare
15:20 Peter Bourgon Go and the Modern Enterprise
16:00 Pub  

Matt talked, [slides here](, about how to stop thinking of errors as things that don't usually happen, and how to integrate processing all outcomes into your code. The backdop here is that Go does not support exceptions as Java, Python, etc. do, but insists on the use of error codes. Many claim this is a 1970s style of working, but once you properly "get into" Go's way of using error codes, it stops being that much of a problem and starts leading to systems that do not go wrong quite so much as Java and Python ones do.

Francesc talked, [slides here](, about many thing, but the highlight for me was a thorough analysis of how to do enums in a whole collection of different contexts. The main thrust though was to get people interested in 'go generate' which is a way of running tools to generate code. In a sense it is embedding into the Go compiler some aspects of what might have been done with Makefile, SConstructs, etc.

David introduced Go on Android, just as it says in the title. This was really about toolchains to get Go executables onto Android devices and the work being done on a UI widget library. This session has made a lot of people not only happy, but also very excited.

Brad gave a frenetic demo-based introduction to HTML/2 and how to harness it with Go code. The performance of HTML/2 is extremely impressive compared to HTML/1.1.

John presented on how he evolved CloudFlare from a PHP company to being a Go company by guerilla tactics. He also get massive kudos for showing some real CSP. Go's real USP for developing systems are the goroutines and the channels, leading to a very dataflow oriented approach unconcerned with hardware threads. The model isn't CSP exactly but it is directly analogous.

Peter rounded the day off by trying to create a discussion of how other organizations can move to being focused on using Go rather than any other language.

A splendid day, especially as I met a few people I already knew, and chatted with a number of people I had never met before.

Many then went of to the pub, some went home, I went on to the first London D User group meeting…

Copyright © 2017 Russel Winder -