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.