2 January 2013
Late last year I wrote a couple of Go talks and presented them at Strange Loop,
Øredev, and various other venues.
The talks are designed to give insight into the practice of Go programming,
each describing the construction of a real program and demonstrating the
power and depth of the Go language and its libraries and tools.
The following videos are, in my opinion, the best recordings of these talks.
Go is a general-purpose language that bridges the gap between efficient
statically typed languages and productive dynamic language.
But it’s not just the language that makes Go special – Go has broad
and consistent standard libraries and powerful but simple tools.
This talk gives an introduction to Go, followed by a tour of some real programs
that demonstrate the power,
scope, and simplicity of the Go programming environment.
See the slide deck (use the left and right arrows to navigate).
One of Go's key design goals is code adaptability;
that it should be easy to take a simple design and build upon it in a clean and natural way.
In this talk I describe a simple "chat roulette" server that matches pairs
of incoming TCP connections,
and then use Go's concurrency mechanisms,
interfaces, and standard library to extend it with a web interface and other features.
While the function of the program changes dramatically,
Go's flexibility preserves the original design as it grows.