# Two recent Go talks
2 Jan 2013
Tags: talk, video, ethos
Summary: Two Go talks: “Go: A Simple Programming Environment” and “Go: Code That Grows With Grace”.

Andrew Gerrand

## Introduction

Late last year I wrote a couple of Go talks and presented them at [Strange Loop](http://thestrangeloop.com/),
[Øredev](http://oredev.com), 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 [slide deck](https://talks.golang.org/2012/simple.slide) (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 [slide deck](https://talks.golang.org/2012/chat.slide) (use the left and right arrows to navigate).
