{"version":1,"type":"rich","provider_name":"Libsyn","provider_url":"https:\/\/www.libsyn.com","height":90,"width":600,"title":"Scala.js to Wasm\u2014Exploring the Wasm backend for Scala.js with S\u00e9bastien Doeraene","description":"The JVM-to-Web journey continues! In this episode, Thomas Steiner welcomes the original author of Scala.js, S\u00e9bastien Doeraene, to discuss the major, experimental leap to WebAssembly. You\u2019ll 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\u2019s 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\u00e9bastien 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! &amp;nbsp; Chapters: 0:00 -&amp;nbsp; Commonalities between composing music and composing compilers 1:38 - Scala, Scala.js, Scala Native, and the Scala Center 11:01 - The &quot;elevator pitch&quot; 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\u00e9bastien's hobby project ported to Scala.js 44:02 -&amp;nbsp; 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 -&amp;nbsp; What Wasm proposals are you waiting for to unlock new features in Scala.js? 59:57 - Wasm, but not&amp;nbsp; &amp;nbsp;  Resources: &amp;nbsp;   S\u00e9bastien Doeraene on GitHub \u2192 https:\/\/goo.gle\/4pMPufo&amp;nbsp;   S\u00e9bastien Doeraene at EPFL \u2192 https:\/\/goo.gle\/3KTZZhu&amp;nbsp;&amp;nbsp;   Ensemble vocal \u00c9voh\u00e9 \u2192 https:\/\/goo.gle\/4pApQu5&amp;nbsp;   Scala \u2192 https:\/\/goo.gle\/4iYZwY1&amp;nbsp;   Scala.js \u2192 https:\/\/goo.gle\/4oYze9E&amp;nbsp;   Scala Native \u2192 https:\/\/goo.gle\/4rX4hp0&amp;nbsp;   Scala Center \u2192 https:\/\/goo.gle\/44uffZ8&amp;nbsp;   Scala to TypeScript \u2192 https:\/\/goo.gle\/4j37ZcM&amp;nbsp;   Tyrian \u2192 https:\/\/goo.gle\/4iZCOik&amp;nbsp;   Laminar: https:\/\/laminar.dev\/&amp;nbsp;&amp;nbsp;   Scala.js WebAssembly backend \u2192 https:\/\/goo.gle\/4oT4bvV&amp;nbsp;   Announcing Scala.js 1.19.0 \u2192 https:\/\/goo.gle\/4aSYM4F&amp;nbsp;   Wasm GC proposal: https:\/\/github.com\/WebAssembly\/gc&amp;nbsp;   JSPI proposal \u2192 https:\/\/goo.gle\/4s5cIik&amp;nbsp;   Scala.js Interoperability \u2192 https:\/\/goo.gle\/4afJdE1&amp;nbsp;   Scaladex homepage with stats \u2192 https:\/\/goo.gle\/4ja7jCr&amp;nbsp;   FunLabryrinhte (Scala) \u2192 https:\/\/goo.gle\/4oTghoL&amp;nbsp;&amp;nbsp;   FunLabryrinhte (original) \u2192 https:\/\/goo.gle\/3KA8EWx&amp;nbsp;   Bringing Scala to Server-Side Wasm \u2192 https:\/\/goo.gle\/4pgwC7v&amp;nbsp;   Scala.js Wasm Limitations \u2192&amp;nbsp; https:\/\/goo.gle\/4s1jOnN&amp;nbsp;   Custom descriptors proposal \u2192 https:\/\/goo.gle\/4p8I7Og&amp;nbsp;   Stack Switching Proposal \u2192 https:\/\/goo.gle\/4pJG8B1&amp;nbsp;   JS Primitives Builtins proposal \u2192 https:\/\/goo.gle\/4akAnor&amp;nbsp;   Shared-Everything Threads proposal \u2192 https:\/\/goo.gle\/3MCCxGd&amp;nbsp;     Watch more WasmAssembly \u2192  https:\/\/goo.gle\/WasmAssembly&amp;nbsp; Subscribe to Chrome for Developers \u2192  https:\/\/goo.gle\/ChromeDevs   #WebAssembly #Wasm #ChromeForDevelopers #Chrome &amp;nbsp; Speaker: Thomas Steiner Products Mentioned:  Web Assembly (Wasm),&amp;nbsp;  Chrome,&amp;nbsp;  WebAssembly for Chrome &amp;nbsp; ","author_name":"WasmAssembly","author_url":"http:\/\/sites.libsyn.com\/520688\/site","html":"<iframe title=\"Libsyn Player\" style=\"border: none\" src=\"\/\/html5-player.libsyn.com\/embed\/episode\/id\/39580435\/height\/90\/theme\/custom\/thumbnail\/yes\/direction\/forward\/render-playlist\/no\/custom-color\/88AA3C\/\" height=\"90\" width=\"600\" scrolling=\"no\"  allowfullscreen webkitallowfullscreen mozallowfullscreen oallowfullscreen msallowfullscreen><\/iframe>","thumbnail_url":"https:\/\/assets.libsyn.com\/secure\/content\/197041655"}