Programming Articles and Talks

Here’s a collection of talks or articles that I really enjoy.

The Error Model

Joe Duffy describes the error model in an experimental programming language that he worked on. Starts off by describing different ways that programming languages give programmers to express and deal with errors. He discusses the pros and cons of each strategy, and then goes on to describe how they designed around those problems to create something truly unique.

The Future of Programming

A concept talk where the presenter pretends to be giving a talk in 1973 about exciting things that are happening in programming. The twist is that most of the things he is discussing never really came to fruition and he expresses his frustration that they were never fully adopted.

GitOps

Weaveworks describes how they designed their infrastructure to store everything as source code. THIS IS EXACTLY WHAT I WANT TO BUILD. I hate hate hate how irreproducable most of infrastructure is. I would love to have a system like this where everything is stored as source code.

Growing a Language

Guy Steele gives a talk where he is not allowed to use a word until he has defined it in terms of words he is already allowed to use. He does this parallel how programmers have to build large structures out of small pieces, but by structuring them properly can make the job easier.

The Hitchhiker’s Guide to the Unexpected

A talk on how to design for unexpected bugs and conditions. Given in the context of the Erlang/OTP ecosystem, includes a very detailed section on a thought experiment to do with each project. Draw out the dependencies of each part of your service, and ask “How do I want the system to behave if each fails?” This seems obvious, but thinking of things in the context of OTP supervision trees and how they respawn processes might be a big benefit even to projects that don’t use OTP.

Simple Made Easy

Rich Hickey (creator of Clojure) describes the difference between ‘simple’ and ’easy’ and explains how developers should strive to make things simple, even if that isn’t the easy way to do things.

The Zen of Erlang

A talk on how Erlang’s design choices can make it easier to design resilient systems, once you grasp the actor model and the “Let It Crash” philosophy. I’ve never used Erlang, but this talk makes me really want to.