Jonathan Blow on Programming Language Design

Jonathan Blow on Programming Language Design

Author: Richard Feldman November 16, 2025 Duration: 1:41:42

Jonathan Blow, creator of popular games Braid and The Witness, talks with Richard about programming language design - including the design of the programming language he's been building for game developers.


Keynote & Tech Demo - https://youtu.be/IdpD5QIVOKQ

ECS and Rust's Borrow Checker - https://youtu.be/4t1K66dMhWk

"The 30 Million Line Problem" - https://youtu.be/kZRE7HIO3vk

"A New Programming Language for Games" - https://youtu.be/TH9VCN6UkyQ?si=Z5cqazo4QU7AibzB

Roc Programming Language - https://roc-lang.org

Casey Muratori's "Performance-Aware Programming" Course - https://www.computerenhance.com/p/welcome-to-the-performance-aware

File Pilot File Explorer - https://filepilot.tech/

Ghostty Terminal - https://ghostty.org/

Language Server Protocol - https://microsoft.github.io/language-server-protocol/

WebAssembly Integer Sizes - https://developer.mozilla.org/en-US/docs/WebAssembly/Reference/Numeric/Const

Cliff Click's Sea of Nodes Compiler IR - https://github.com/SeaOfNodes/


Chapters

00:00 The Programming Establishment

02:04 Metaprogramming

05:04 Compile-Time Execution

08:05 Language Feature Interoperability

10:53 Compile Time Execution

27:52 Cross-Compiling and FFI

31:04 Determinism in Programming

35:07 Balancing Power and Safety

40:11 Memory Safety vs. Performance

50:15 The Evolution of Software Performance

55:32 Performance Awareness

01:03:56 Dependencies and Version Control

01:14:54 Dependency Availability Risk

01:18:42 Memory Management

01:24:51 Sandboxing

01:30:23 Operating Systems


Hosted on Acast. See acast.com/privacy for more information.


Richard Feldman hosts Software Unscripted, a weekly podcast that feels like pulling up a chair next to a fellow developer who’s seen it all. The conversations here are off-the-cuff and genuine, delving into the realities of writing code, navigating tech trends, and the often-unspoken challenges of building software. Rather than rigid interviews or dry lectures, each episode unfolds as a natural dialogue, exploring the intersection of technology, continuous learning, and the news shaping our digital tools. You’ll hear discussions that range from practical programming techniques and language debates to broader observations about the industry’s direction, all through a lens of lived experience. This isn't about polished presentations; it's about the authentic, sometimes messy, process of thinking through problems and sharing insights. For anyone who spends their days deep in logic and syntax, this podcast offers a relatable and thoughtful space to reflect on the craft. Tune in for a candid and engaging take on the world of software, one unscripted conversation at a time.
Author: Language: English Episodes: 100

Software Unscripted
Podcast Episodes
Incremental Compilation with Alex Kladov [not-audio_url] [/not-audio_url]

Duration: 1:23:42
Richard talks with Rust Analyzer creator Alex Kladov (aka matklad) about compilers, including ways they can do incremental compilation, memory management strategies, modules and boundaries, and even monomorphization! Hos…
Programming and Industrial Design with Greg Wilson [not-audio_url] [/not-audio_url]

Duration: 57:52
Richard talks with programming teacher Greg Wilson about different types of beginner programmers and how they learn most effectively, what counterintuitive aspects of programming languages they tend to find more or less…
Pure Functional Programming in C with Ryan Fleury [not-audio_url] [/not-audio_url]

Duration: 1:40:52
Richard talks with RAD Game Tools Debugger programmer Ryan Fleury, about memory management in debugging, caching, operator overloading, and pure functional programming in...C?! Hosted on Acast. See acast.com/privacy for…
Lambda Set Defunctionalization with Ayaz Hafiz [not-audio_url] [/not-audio_url]

Duration: 45:09
Richard talks with Ayaz Hafiz, a contributor to the Roc programming language, about a very specific topic in the Roc compiler, namely lambda set defunctionalization (including explaining what that term actually means). T…
Implementing Databases with Glauber Costa [not-audio_url] [/not-audio_url]

Duration: 48:22
Richard talks with Glauber Costa about how to implement databases that can do millions of reads per second, how hardware changes have affected the tradeoffs around relational and NoSQL databsaes, and what people mean by…
The Return of Hypermedia with Carson Gross [not-audio_url] [/not-audio_url]

Duration: 1:08:48
Richard talks with HTMX creator Carson Gross about some of the ways in which modern web development has arguably regressed over the past 15 or so years, as well as Hypertext, Hypermedia, HyperCard, HyperView, HyperScript…
Making JITted Code Faster with Chris Nuernberger [not-audio_url] [/not-audio_url]

Duration: 1:09:04
Richard talks with Chris Nuernberger about his experiences making code run faster in the context of the Java Virtual Machine (JVM) and the similarities and differences between that and trying to make C++ code faster...am…
Things Web Devs Can Learn from Game Devs with Casey Muratori [not-audio_url] [/not-audio_url]

Duration: 2:06:37
Richard talks with Casey Muratori, a game engine programmer who's known for creating the term Immediate Mode GUIs, for his Twitch series Handmade Hero, and most recently for his excellent Performance Aware Programming co…