WebAssembly from the Ground Up with Patrick Dubroy and Mariano Guerra
Get ready for WasmAssembly episode 16! Host Thomas Steiner sits down with Patrick Dubroy and Mariano Guerra, authors of the ebook "WebAssembly from the Ground Up." Discover how they're teaching Wasm by building a compiler in JavaScript, why writing WebAssembly by hand is crucial, and their thoughts on the future of compiler education. Tune in to learn about Ohm, the surprising omission of WAT, and what a potential part 2 of their book might cover! Chapters: 0:00 - Welcoming Patrick and Mariano, authors of "WebAssembly from the Ground Up 1:34 - How the book came to be 5:34 - How the co-authors met 9:13 - Who should learn WebAssembly by actually writing it? 13:13 - Is it time to retire the Dragon Book? 17:42 - What is Ohm, what it has to do with the programming language Wafer, and why they chose Ohm for the book 27:22 - Compiling Ohm grammars to Wasm 30:22 - The on-purpose omission of the Wasm text format WAT 38:27 - A potential part 2 of the book 43:36 - The biggest surprise when writing the book 50:42 - Wasm, but not Resources: Mariano Guerra on LinkedIn: https://goo.gle/4gtIq3e Patrick Dubroy on LinkedIn: https://goo.gle/46t7Ucx WebAssembly from the Ground Up: https://goo.gle/3IvlqnT Learn WebAssembly: https://goo.gle/46v50E0 WebAssembly website Issue: Consider adding a pure Wasm tutorial: https://goo.gle/46MlMzK Let's Build a Compiler, by Jack Crenshaw: https://goo.gle/4gwQGzz Simpletron Machine Language and Compiler from Deitel's Java book: https://goo.gle/4nK5CNf Little Riak Core Book: https://goo.gle/48rMNtF Failed PR "Initial tests for globals" to the Wasm spec:https://goo.gle/3IwfQ4I Short lived "WebAssembly Weekly" newsletter: https://goo.gle/3IgQYOp The Dragon Book: https://goo.gle/4pLnYPM Ohm: https://goo.gle/3VWpu3B Human Advancement Research Community (HARC):https://goo.gle/3Iqbf47 Communications Design Group (CDG):https://goo.gle/4px8zlK Forth dialect implemented in C, JavaScript, WebAssembly and compiled from C to asm.js and WebAssembly: https://goo.gle/3KvZLfV Minimal Object Oriented runtime in WAT and WasmGC:https://goo.gle/4nxxS5m wasm-tools: https://goo.gle/4nyisxQ Apple's Pascal "syntax" poster: https://goo.gle/4mvhX6X Niklaus Wirth: https://goo.gle/424Bzax Lilith Computer: https://goo.gle/4nECeru Oberon System: https://goo.gle/4pvyP03 Bill Hader on feedback: https://goo.gle/3K9R76U How Julia Evans asks for feedback: https://goo.gle/4gxwFZv Patrick's blog post "Reflections on writing a book": https://goo.gle/4gx3Jkk Quarterback: https://goo.gle/4gvIcc5 Max Bernstein's blog: https://goo.gle/46vlwUD Thorsten Ball's newsletter: https://goo.gle/4pvoWzl Gleam Programming Language: https://goo.gle/46H66hj Sonic Pi: https://goo.gle/3I6z6Wv Future of Coding Newsletter: https://goo.gle/3Isd4xi Patrick Dubroy on Bluesky: https://goo.gle/3VZ6v8C Patrick Dubroy on Mastodon: https://goo.gle/4pvzazR Mariano Guerra on Bluesky: https://goo.gle/4pxInYa Mariano Guerra on Mastodon: https://goo.gle/4n6OXn3 WebAssembly from the Ground Up ebook on Bluesky: https://goo.gle/4prbIUd WebAssembly from the Ground Up ebook on Mastodon: https://goo.gle/4gxBwtX
--------
59:03
--------
59:03
CG, WG, W3C, Lively—Wasm standardization with Thomas Lively - WasmAssembly
In this episode of WasmAssembly, host Thomas Steiner welcomes Thomas Lively from Google, the new co-chair of the W3C WebAssembly Community Group. Taking over the role from past guest Deepti Gandluri (episode #2), we seize the opportunity to ask Lively the exact same three questions we posed to Deepti—listen back to compare their perspectives! In the second half, the two Thomases dive deep into the proposals Lively is personally championing, covering Custom Descriptors and JS Interop, and the highly-anticipated Shared-Everything Threads. Chapters: 0:00 - The Wasm team "Thomas" confusion 0:57 - Thomas' way into Google's Wasm team 4:10 - Wasm CG vs. Wasm WG 9:39 - Is Wasm standardization moving slowly? 17:58 - Wasm at Google and the Chrome team 22:33 - The Custom Descriptors and JS Interop proposal 35:02 - The Shared-Everything Threads proposal 43:28 - Wasm, but not Resources: Thomas Lively on LinkedIn → https://goo.gle/45U8uRA WebAssembly Community Group → https://goo.gle/3K0qSj3 From asm.js to Wasm with Emscripten creator Alon Zakai → https://goo.gle/47zQTj9 CG, WG, W3C, Deepti—Wasm standardization with Deepti Gandluri → https://goo.gle/4ndWX5X Custom Descriptors and JS Interop → https://goo.gle/4ggStbY WebAssembly threads → https://goo.gle/45Z0kaI Shared-Everything Threads → https://goo.gle/47BnLYG Thomas Lively on Bluesky → https://goo.gle/4gcm2v8
--------
47:31
--------
47:31
Dart, Flutter, and WasmGC with Ömer Ağacan and Martin Kustermann
In this episode of WasmAssembly, your host Thomas Steiner is joined by Ömer Ağacan and Martin Kustermann from the Dart team at Google. They explore Dart, the language behind Flutter, and how Dart nearly landed in V8 alongside JavaScript, and why Flutter doubled down on Dart and WebAssembly Garbage Collection (WasmGC). Ömer and Martin then share insights on Dart's performance leap from dart2js to dart2wasm, its potential beyond the browser, and what the WasmGC transition means for developers and the broader ecosystem. Finally, they look at Jaspr, Dart-only web apps, or how different browsers are handling WasmGC. This episode again is packed with sharp technical detail and bold visions for the future of WebAssembly. Resources: Dart → https://goo.gle/4kfijgD Flutter → https://goo.gle/4kh4jDi Before Flutter | Rubber Duck Engineering | Episode #100 → https://goo.gle/4nujV9g State of Developer Ecosystem Report → https://goo.gle/4lrmya6 What's new in Flutter → https://goo.gle/44xx0Gl Dart & Flutter momentum at Google I/O 2025 → https://goo.gle/3TgUr1p Accessibility in Flutter on the Web → https://goo.gle/4l2xfQB Stateful hot reload in DartPad → https://goo.gle/4nokFg1 WebAssembly (Wasm) compilation → https://goo.gle/3I8Ngpx Support for WebAssembly (Wasm) → https://goo.gle/45L0wdR WebAssembly Garbage Collection (WasmGC) now enabled by default in Chrome → https://goo.gle/3G7qLAS Wasm-feature-detect library → https://goo.gle/4evqS5Y A new way to bring garbage collected programming languages efficiently to WebAssembly → https://goo.gle/4keW0rt [dart2wasm] Support non-JS wasm runtimes → https://goo.gle/44wr3t3 Safari bug: Umbrella: Using Canvas image sources between different canvases and canvas types is slow → https://goo.gle/3TmuSvM Firefox bug: OffscreenCanvas.transferToImageBitmap incurs a copy → https://goo.gle/3GoIGD2 Ömer Ağacan on LinkedIn → https://goo.gle/4lA6fYB Martin Kustermann on LinkedIn → https://goo.gle/3TffQbc
--------
1:05:28
--------
1:05:28
Enabling in-browser scientific computing with Wasm: David Kircos of Quadratic
On this WasmAssembly podcast episode, host Thomas Steiner speaks with David Kircos from Quadratic. They discuss how Quadratic's spreadsheet utilizes WebAssembly to enable scientific computing directly in the browser, leveraging tools like Pyodide, pandas, and numpy. The conversation also covers practical challenges such as bundling large-scale Wasm applications, exploring browser limitations, and Quadratic's integration of AI. Resources: David Kircos on LinkedIn → https://goo.gle/4jcpQg6 Building on the modern web app architecture → https://goo.gle/4hPpcnH Pyodide → https://goo.gle/445YEv9 Pandas → https://goo.gle/4ldvkcp Numpy → https://goo.gle/3E1qSNb Esbuild-wasm → https://goo.gle/4hRqNJL Using JavaScript in a spreadsheet → https://goo.gle/3XIRk4W Making API requests from your spreadsheets → https://goo.gle/3FQQPja Quadratic Python roadmap: building a spreadsheet developers love → https://goo.gle/446dLot ES module integration proposal → https://goo.gle/3C8wd3L AI spreadsheets are here: Quadratic + GPT → https://goo.gle/4hZpFUB Database connectors → https://goo.gle/3QXMs8g SQLite Wasm → https://goo.gle/3FSn3dW Quadratic's GitHub organization → https://goo.gle/4jhWqNY
--------
45:55
--------
45:55
Wasm on feature phones with Cloud Phone's Thomas Barrasso
Feature phones? Yes, they still make them. And they run Wasm! In this WasmAssembly podcast, Thomas Steiner hosts Thomas Barrasso from CloudMosa to talk about the Cloud Phone platform and what it takes to run WebAssembly on tiny feature phones by streaming Web apps from a remote server that runs Chromium. Resources: Thomas Barrasso on LinkedIn → https://goo.gle/3Fxbvwg CloudMosa (Puffin) → https://goo.gle/42bNe7M Cloud Phone → https://goo.gle/4c0xfwB Building web apps for Cloud Phone → https://goo.gle/4bz1Pxn Cloud Phone simulator → https://goo.gle/4c0fRYZ KaiOS → https://goo.gle/4kx6C6z Puffin Cloud Isolation → https://goo.gle/4bFMxqK Telegram client for KaiOS → https://goo.gle/3DRL581 Wasm implementation of algorithms used in Telegram → https://goo.gle/43PTDH1 Stolen Focus book → https://goo.gle/43PTDH1 Reach out → https://goo.gle/4bY9BRs Thomas' email: [email protected]
WebAssembly (abbreviated Wasm, a contraction of "WebAssembly", not an acronym, hence not using all-caps) is a safe, portable, low-level code format designed for efficient execution and compact representation. An assembly is a group of people gathered together in one place for a common purpose. In this show with the whimsical name WasmAssembly (get it?), Thomas Steiner, Developer Relations Engineer at Google, chats with experts from the community about the past, present, and future developments happening in the world of WebAssembly.