The Miracle of Generators & Three years a full-time Go programmer.

This is a past event

39 people went

Location image of event venue


6.30pm - Free beer
7.00pm - Introduction
7.10pm - Three years a full-time Go programmer
7.55pm - Free beer
8.10pm - The Miracle of Generators
8.55pm - Finish

The Miracle of Generators
Bobil Stokke (@bodil (

The ECMAScript 2015 specification introduced iterators, which generalise iteration over common data structures, as well as providing an interface for allowing you to iterate over any custom data structures using common language constructs. ES2015 also introduced generator functions, which make writing arbitrary iterators a lot easier and less boilerplatey.

But generators aren’t just for making simple iterators over data structures. Because they’re bidirectional—they don’t only produce output, they can also take input—they’re actually coroutines, which means there’s no end to the sort of fun you can apply them to. We’re going to explore how we can use them to make asynchronous programming in JavaScript a lot more elegant—to chart a path out of callback hell. And then we’re going to take a look at what we’ve really discovered: one of the most fearsome mysteries of computer science, suddenly laid bare before us.

Three years a full-time Go programmer
Elliott Stoneham (@ElliottStoneham (

The Go programming language (search term "golang") turned six years old last November, for around half of that time Elliott has been writing in Go day-to-day. In this talk he will share why the novelty of such a new language hasn't worn off yet, and in particular why he thinks Go is actually about saving development time and cost. But most programmers are not attracted to Go not for the long-term benefits, initially the ease of creating parallel code is exciting ("go myFuncName()" will do it). So Elliott will use some live examples to illustrate coding patterns for concurrency and parallelism, which is always fun. He will finish by talking about how organisations typically start using Go by creating some small peripheral service, then give examples of organisations that have gone well beyond this to use Go at scale.