Two recent Go talks
2 Jan 2013
Tags: talk, video, ethos

Andrew Gerrand

* Introduction

Late last year I wrote a couple of Go talks and presented them at [[http://thestrangeloop.com/][Strange Loop]], [[http://oredev.com][Ø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: a simple programming environment

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.

.iframe //player.vimeo.com/video/53221558?badge=0 281 500

See the [[http://talks.golang.org/2012/simple.slide][slide deck]] (use the left and right arrows to navigate).

* Go: code that grows with grace

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.

.iframe //player.vimeo.com/video/53221560?badge=0 281 500

See the [[http://talks.golang.org/2012/chat.slide][slide deck]] (use the left and right arrows to navigate).
