"A Fresh Look At Failure" — Further Reading

Note: if you haven't seen the talk yet, there be spoilers here! It goes a few places and I encourage you to wait until you see it or it goes online before reading any further!

But, if you have seen it (or don't care about spoilers), here are some resources after-the-fact.

If you're into whitepapers, you'll probably like Crash-Only Software, which illustrates the concepts I alluded to very well.

I credited the medical metaphor ("software with an immune system") to Fred Hebert, who's produced a ton of things that I think are worth reading. If you like talks: The Zen of Erlang, where he illustrates much about fault tolerance and why Erlang is well-equipped to deal with it, and The Hitchhiker's Guide to the Unexpected, which contains a great problem walkthrough demonstrating the "design for failure" that supervisors allow.

If you like not-talks he also made them into blog posts with the slides: The Zen of Erlang and The Hitchhiker's Guide to the Unexpected. There's also the talk Everything Is Terrible (not in a video, sadly) which I largely agree with, and it's where I got the "comically large queues" joke from, albeit in a slightly different context.

He also wrote Erlang's how I start, which demonstrates writing a basic Erlang program with tests, a build file, making it a library, and building a release with it. He also worked as one of the engineers behind rebar3, which made the Erlang build tool story a whole lot easier.

If you want to learn Erlang, he wrote the books Learn You Some Erlang For Great Good, a wonderful and complete book explaining the various features of the language and its standard library, and Erlang In Anger, "a little guide about how to be the Erlang medic in a time of war."

Bodil Stokke, who has a ton of experience in many different languages, gave the keynote at an Erlang conference describing what it seems like from the outside. One takeaway is something I've observed: Elixir's onboarding and tools are much smoother in the general case. Since it's built on many of the same abstractions, if you find any of this Erlang stuff too much but still want to push through, it might be worth giving a look to Elixir!

If you want a blog post with a great description of what Erlang and its runtime do well, Evan Miller wrote a great summary of its unique charms, and another extolling the virtues of the VM, using Elixir as its example. Since I opened the talk with a comparison to Go, Evan also wrote his impressions on Go, which I found humorous with reservations.

Joe Armstrong is probably the most visible of original Erlang implementers, and he gives a ton of talks, many I like, like "The Mess We're In"

Erlang: The Movie is cute and the source of many Erlang memes. If you hear Erlangers say "Hello Robert" / "Hello Joe," it comes from here 😄

Lastly, here was my CFP submission video. Tell me whether what you saw stuck to its promises, and how well!

With all that said, the final punchline was sincere! I'm not telling you to rewrite everything in Erlang or Elixir! I mostly wanted to introduce and extoll recovery-oriented programming more generally 😛

The other big theme was that "freshness" came to me in a language as old as I am. Bret Victor has a great talk called "The Future of Programming" where he talks about computing's bright future from the perspective of 1970s, mostly showing a lot of those "uneaten desserts" I was alluding to.