BEAM There, Done That

← BEAM There, Done That31 jul · 42 min

Mike Williams & Björn Gustavsson on Building the JAM

Mike Williams & Björn Gustavsson on Building the JAM31 jul42 min

<p>Before the BEAM, there was the JAM - Joe&#39;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&#39;s computer science lab who had a mandate to do whatever they wanted.</p><p>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&#39;ve recorded - Alan Wyma and Francesco Cesarini bring them both together to tell the story of where the BEAM actually came from.</p><p>Topics include:</p><ul><li><p>why Mike looked at Joe Armstrong&#39;s first 20 lines of C and said &quot;this is awful, I&#39;ll do something about it&quot; - and how he got message passing down to six instructions</p></li><li><p>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</p></li><li><p>why keeping concurrency inside the language rather than the OS was &quot;perfectly obvious&quot; to Mike, and why it was a minority view even then - Java removed green threads, early Rust removed lightweight processes</p></li><li><p>the two-version rule for module hot loading that&#39;s still in the BEAM today, 30 years on - and why Björn never wanted to remove it</p></li><li><p>memory as the binding constraint, not speed: phone switches handling whole cities ran on 16–64 MB of RAM</p></li><li><p>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&#39;s binary syntax</p></li><li><p>what Björn saw when he first read Mike&#39;s code in 1996, why he liked the JAM more than the BEAM at first, and what finally made the JAM obsolete</p></li><li><p>the computer science lab culture that made Erlang possible: no publish-or-perish pressure, just a mandate to solve a real problem</p></li></ul><p>Recorded June 4, 2026.</p><p><strong>Resources mentioned:</strong></p><ul><li><p>&quot;History of Programming Languages&quot; paper, Joe Armstrong (HOPL III)</p></li><li><p>Bjarne Däcker&#39;s licentiate thesis</p></li><li><p>Early Erlang CS lab technical reports (ERN series)</p></li></ul>