Before the BEAM, there was the JAM - Joe's Abstract Machine. It was the first virtual machine that made Erlang fast enough to run in production, and it was built by a handful of people at Ericsson's computer science lab who had a mandate to do whatever they wanted.

Mike Williams wrote large parts of the emulator. Björn Gustavsson inherited it in 1996 and built what came after. In this episode - the most historically significant we've recorded - Alan Wyma and Francesco Cesarini bring them both together to tell the story of where the BEAM actually came from.

Topics include:

  • why Mike looked at Joe Armstrong's first 20 lines of C and said "this is awful, I'll do something about it" - and how he got message passing down to six instructions

  • the three numbers that decide whether a concurrent language lives or dies: process creation time, context switch time, and message copy time - and why 70% of VM time was spent on them, not application code

  • why keeping concurrency inside the language rather than the OS was "perfectly obvious" to Mike, and why it was a minority view even then - Java removed green threads, early Rust removed lightweight processes

  • the two-version rule for module hot loading that's still in the BEAM today, 30 years on - and why Björn never wanted to remove it

  • memory as the binding constraint, not speed: phone switches handling whole cities ran on 16–64 MB of RAM

  • how distribution was added to the JAM by Claes Wikström - the person whose name is always forgotten in this story, who also invented ETS tables and created the first prototype of Erlang's binary syntax

  • what Björn saw when he first read Mike's code in 1996, why he liked the JAM more than the BEAM at first, and what finally made the JAM obsolete

  • the computer science lab culture that made Erlang possible: no publish-or-perish pressure, just a mandate to solve a real problem

Recorded June 4, 2026.

Resources mentioned:

  • "History of Programming Languages" paper, Joe Armstrong (HOPL III)

  • Bjarne Däcker's licentiate thesis

  • Early Erlang CS lab technical reports (ERN series)

Podden och tillhörande omslagsbild på den här sidan tillhör Plangora. Innehållet i podden är skapat av Plangora och inte av, eller tillsammans med, Poddtoppen.