
Sign up to save your podcasts
Or


The JVM-to-Web journey continues! In this episode, Thomas Steiner welcomes the original author of Scala.js, Sébastien Doeraene, to discuss the major, experimental leap to WebAssembly. You'll learn why the team decided to target Wasm now and how it complements the existing JavaScript emission. This episode offers a technical deep-dive into how Scala's powerful, nominal type system maps its objects and classes onto Wasm GC, and examines the critical details of interoperability, including what happens when a Scala object crosses the boundary to a JavaScript function. Finally, Sébastien covers the current status of the Wasm ecosystem for Scala.js, and the key limitations you need to know before you flip the `withExperimentalUseWebAssembly(true)` switch. Tune in to discover how a mature typed language is laying a fast, new foundation on the web!
Chapters:
0:00 - Commonalities between composing music and composing compilers
1:38 - Scala, Scala.js, Scala Native, and the Scala Center
11:01 - The "elevator pitch" for Scala.js
14:59 - Is Scala.js competing with TypeScript?
20:31 - What motivated the decision to target Wasm?
26:40 - ] How Scala.js utilizes Wasm GC
31:24 - What's actually crossing the boundary between JS and Scala.js?
37:37 - BigInt support in Scala.js
38:38 - The status of the library ecosystem for the Wasm target
41:40 - Sébastien's hobby project ported to Scala.js
44:02 - Is the Wasm backend purely a Scala.js thing for browsers?
52:38 - What developers should be aware of before flipping that `withExperimentalUseWebAssembly(true)` switch
58:28 - What Wasm proposals are you waiting for to unlock new features in Scala.js?
59:57 - Wasm, but not
Resources:
Sébastien Doeraene on GitHub → https://goo.gle/4pMPufo
Sébastien Doeraene at EPFL → https://goo.gle/3KTZZhu
Ensemble vocal Évohé → https://goo.gle/4pApQu5
Scala → https://goo.gle/4iYZwY1
Scala.js → https://goo.gle/4oYze9E
Scala Native → https://goo.gle/4rX4hp0
Scala Center → https://goo.gle/44uffZ8
Scala to TypeScript → https://goo.gle/4j37ZcM
Tyrian → https://goo.gle/4iZCOik
Laminar: https://laminar.dev/
Scala.js WebAssembly backend → https://goo.gle/4oT4bvV
Announcing Scala.js 1.19.0 → https://goo.gle/4aSYM4F
Wasm GC proposal: https://github.com/WebAssembly/gc
JSPI proposal → https://goo.gle/4s5cIik
Scala.js Interoperability → https://goo.gle/4afJdE1
Scaladex homepage with stats → https://goo.gle/4ja7jCr
FunLabryrinhte (Scala) → https://goo.gle/4oTghoL
FunLabryrinhte (original) → https://goo.gle/3KA8EWx
Bringing Scala to Server-Side Wasm → https://goo.gle/4pgwC7v
Scala.js Wasm Limitations → https://goo.gle/4s1jOnN
Custom descriptors proposal → https://goo.gle/4p8I7Og
Stack Switching Proposal → https://goo.gle/4pJG8B1
JS Primitives Builtins proposal → https://goo.gle/4akAnor
Shared-Everything Threads proposal → https://goo.gle/3MCCxGd
Watch more WasmAssembly → https://goo.gle/WasmAssembly
Subscribe to Chrome for Developers → https://goo.gle/ChromeDevs
#WebAssembly #Wasm #ChromeForDevelopers #Chrome
Speaker: Thomas Steiner
Products Mentioned: Web Assembly (Wasm), Chrome, WebAssembly for Chrome
Join WasmAssembly host Thomas Steiner for a deep dive into the world of Kotlin/Wasm with Zalim Bashorov from JetBrains! This episode of WasmAssembly explores how Kotlin, known for being concise, multiplatform, and fun, became the recommended language for Android, and why JetBrains decided to expand its reach to WebAssembly. They discuss how people are currently using Kotlin on the Web, the power of Kotlin Multiplatform, and the future of Kotlin/Wasm, covering exciting recent and new proposals like Garbage Collection, Exception Handling, and Shared-Everything Threads. Tune in to hear about the tooling, next milestones, and the evolving landscape of Kotlin development.
Chapters: 0:00 - Introducing Zalim from JetBrains 2:19 - Kotlin: Concise. Multiplatform. Fun. But what does this mean? 9:05 - How did Kotlin become the recommended programming language for Android? 16:17 - Why did JetBrains decide to support WebAssembly? 25:36 - People use Kotlin on the Web, but how? 31:15 - What is Kotlin Multiplatform? 37:48 - Understanding canvas-rendered apps 41:17 - Could the HTML-in-Canvas proposal help? 43:59 - New Wasm proposals Zalim is excited about 54:29 - What about Kotlin on the server? Resources:
Zalim Basharov on LinkedIn → https://goo.gle/4pis0y2
StackOverflow 2025 developer survey results → https://goo.gle/3WZuchN
Kotlin Programming Language → https://goo.gle/4ifxZkU
Google I/O 2019: Empowering developers to build the best experiences on Android + Play → https://goo.gle/3LLwpen
Kotlin Is Everywhere: https://goo.gle/4rlvdPc
Kotlin/Native → https://goo.gle/3LNk1KM
Kotlin/JavaScript → https://goo.gle/3XxkDH0
Kotlin/Wasm → https://goo.gle/4r53NwP
Kotlinx.browser → https://goo.gle/4o9WRvJ
Kotlin/Wasm browser template → https://goo.gle/49tzl9c
Get started with Kotlin/Wasm and Compose Multiplatform → https://goo.gle/3X8cmsW
Get started with Kotlin Multiplatform → https://goo.gle/48njI20
HTML-in-Canvas proposal → https://goo.gle/48sy8wX
Garbage collection proposal → https://goo.gle/4i4CgHw
Exception handling proposal → https://goo.gle/483coav
Shared-everything threads proposal → https://goo.gle/4474V9e
Stack switching proposal → https://goo.gle/49XiMCH
All ways to reach Zalim → https://goo.gle/3LG78lT
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
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
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
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
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
In this WasmAssembly podcast episode, Sean Isom and Mendy Berger from renderlet join host Thomas Steiner. Discover renderlet, a WebAssembly framework for writing graphics code that runs on any platform.
Resources:
Mendy Berger on LinkedIn → https://goo.gle/4b1y205
Sean Isom on LinkedIn → https://goo.gle/4hyO8Rb
Renderlet → https://goo.gle/3QsfjRy
renderlet Wasm I/O talk → https://goo.gle/42Z4nm4
renderlet Wasm I/O slides → https://goo.gle/4b7qCs1
Drawing to canvas in Emscripten → https://goo.gle/4i4Kazu
Multi-draw indirect GPU feature → https://goo.gle/3EH8zNg
Mesh shaders → https://goo.gle/40Y2Jyu
Work graphs → https://goo.gle/42X96ot
When in doubt, writeBuffer() → https://goo.gle/4jWjLWm
Fine grained control of memory proposal → https://goo.gle/4hHMvkj
Streams.wit → https://goo.gle/4gHkQhT
wasi-gfx talk: → https://goo.gle/4gU0tyo
wasi-gfx proposal → https://goo.gle/3QmYY0z
Web IDL → https://goo.gle/3X7Ea10
WIT → https://goo.gle/3CYzp2W
Webidl2wit → https://goo.gle/412whef
Mendy Berger on Mastodon → https://goo.gle/3D7XPXH
WebAssembly is known for its speed and security, but can it be applied to enhance application security as a whole? Join Arcjet's CEO David Mytton and host Thomas Steiner on WasmAssembly as they delve into Arcjet's innovative use of Wasm for crucial security functions like bot detection, rate limiting, and data redaction, providing developers with a powerful yet manageable security toolkit.
Resources:
Squishy Wasm apps using Extism with Dylibso's Steve Manuel - WasmAssembly → https://goo.gle/3VFcf7J
David Mytton's blog → https://goo.gle/3C7kXFv
Console Devtools podcast episode with Fermyon's Matt Butcher → https://goo.gle/3C8mQBQ
Arcjet → https://goo.gle/40r7dNH
Arcjet Wasm blog posts → https://goo.gle/3WqTNQG
Arcjet example app → https://goo.gle/3E3We5n
@arcjet/next package → https://goo.gle/3DXvyDh
Arcjet JS SDK → https://goo.gle/4h4UyqY
Jco → https://goo.gle/4ecjdIC
jco example → https://goo.gle/4gwhBLu
Wasm-bindgen → https://goo.gle/3WrZVs0
Arcjet-js PR where we switched, with some comments on reasoning → https://goo.gle/4hHkJEf
Componentize-py → https://goo.gle/3CdOUUn
Componentize-dotnet → https://goo.gle/42oiNMu
ComponentizeJS → https://goo.gle/3OUNjFG
Wasm Interface Type (WIT) → https://goo.gle/4fnXMFf
Extism → https://goo.gle/3E5waa2
Join Thomas Steiner as he chats with Thorsten Hans, Senior Cloud Advocate at Fermyon, about the exciting world of WebAssembly serverless functions and microservices with the Spin framework. Discover how Spin uses WebAssembly for lightning-fast cold starts and great portability, and explore the advantages of building microservice applications with Spin's diverse language support. Thorsten and Thomas also delve into the role of WebAssembly standards in shaping the future of cloud-native development. Tune in for this insightful conversation on the cutting edge of WebAssembly technology!
Resources:
Thorsten Hans' Fermyon blog posts → https://goo.gle/3ZCRJpL
Thorsten Hans on X → https://goo.gle/49xok4J
Thorsten Hans' blog → https://goo.gle/49xooBv
Thorsten Hans on LinkedIn → https://goo.gle/3Dh9frZ
Thorsten Hans on joining Fermyon → https://goo.gle/3PeO7pb
Till Schneidereit on LinkedIn → https://goo.gle/49ApA73
Fermyon Spin → https://goo.gle/3ZQdTGb
Introducing Spin → https://goo.gle/3VBBeZI
Fermyon Spin on GitHub → https://goo.gle/3VEEymR
Building Spin Components in JavaScript → https://goo.gle/3ZCSZct
WasmAssembly episode "Squishy Wasm apps using Extism with Dylibso's Steve Manuel": → https://goo.gle/3VFcf7J
Spin JS/TS SDK → https://goo.gle/41zjrGw
ComponentizeJS → https://goo.gle/3OUNjFG
WASI HTTP → https://goo.gle/3MQvK8L
SpiderMonkey → https://goo.gle/4gIR1Ps
StarlingMonkey → https://goo.gle/3De6IyM
Spin Rust SDK → https://goo.gle/49zRznq
Spin SQLite storage → https://goo.gle/4iATEUo
Spin Serverless AI → https://goo.gle/49yWvJa
From the publisher's feed