Share

cover art for Jonathan Blow on Programming Language Design

Software Unscripted

Jonathan Blow on Programming Language Design

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

More episodes

View all episodes

  • Metaprogramming Your IDE in Lean 4 with Harry Goldstein

    41:18|
    Harry Goldstein talks with Richard Feldman about the Lean 4 programming language's compile-time metaprogramming capabilities, including how they can be used to control elements of your IDE in realtime. They also discuss other topics like property-based testing, theorem proving, and Smalltalk.You can get ad-free episodes (including video) by supporting Software Unscripted on Patreon! https://www.patreon.com/SoftwareUnscriptedThe Best New Programming Language is a Proof Assistant by Harry Goldstein - https://youtu.be/c5LOYzZx-0c?si=UnTfkczIhdoF7QkxThe Lean Programming Language - https://lean-lang.orgSimon Peyton-Jones: Escape from the ivory tower: the Haskell journey - https://youtu.be/re96UgMk6GQ?si=8xqpAS8VTQaqgbzg"Shen: A Sufficiently Advanced Lisp" by Aditya Siram - https://youtu.be/lMcRBdSdO_U?si=VOwJNeLAvnIRUm_nHypothesis Property-Based Testing library for Python - https://hypothesis.works/
  • Zig Creator Andrew Kelley

    01:49:14|
    Richard talks with Zig Creator Andrew Kelley.- Support Zig - https://ziglang.org/zsf/- Zig's "Writergate" - https://ziglang.org/download/0.15.1/release-notes.html#Writergate- "What Color is Your Function?" by Robert Nystrom - https://journal.stuffwithstuff.com/2015/02/01/what-color-is-your-function/- "Asynchrony is not Concurrency" by Loris Cro - https://kristoff.it/blog/asynchrony-is-not-concurrency/- "Data alignment for speed: myth or reality?" by Daniel Lemire - https://lemire.me/blog/2012/05/31/data-alignment-for-speed-myth-or-reality/
  • Securing Evolving Software with Noah Hall

    59:50|
    xz vulnerability: https://en.wikipedia.org/wiki/XZ_Utils_backdoorSpectre: https://en.wikipedia.org/wiki/Spectre_(security_vulnerability)Meltdown: https://en.wikipedia.org/wiki/Meltdown_(security_vulnerability)Heartbleed: https://en.wikipedia.org/wiki/HeartbleedNoah on GitHub https://github.com/eeue56 - Substack https://substack.com/@eeue56 - BlueSky https://bsky.app/profile/derw-lang.com
  • Andreas Kling on Ladybird Browser, SerenityOS, and Powerlifting

    01:20:08|
    Ladybird Browser - https://ladybird.orgSerenityOS - https://serenityos.orgStory of the man who used powerlifting to recover after falling off a roof https://startingstrength.com/articles/brian_jones_story.pdfStrongLifts 5x5 - https://stronglifts.com/stronglifts-5x5/Starting Strength - https://startingstrength.com/
  • 109. GPU Programming and Language Design with Chris Lattner

    01:18:49||Ep. 109
    Richard talks with Swift, LLVM, Clang, and Mojo creator Chris Lattner about programming on the GPU and on the CPU, as well as a number of programming language design topics.Chris's "Democratizing AI Compute" blog series - https://www.modular.com/blog/democratizing-compute-part-1-deepseeks-impact-on-aiMojo https://www.modular.com/mojoRoc https://www.roc-lang.orgSoftware Unscripted episode with Futhark language creator https://pod.link/1602572955/episode/00564b1774ebe0e4225a630825ed3deeClaude 4 https://www.anthropic.com/news/claude-4
  • 108. Broken AI Discourse with Steve Klabnik

    01:19:43||Season 1, Ep. 108
    Longtime Rust contributor Steve Klabnik talks with Richard about the broken state of AI discourse, from excessive hype to excessive hate, and reasonable alternatives we could pursue instead.Steve's blog post: "I am disappointed in the AI discourse" - https://steveklabnik.com/writing/i-am-disappointed-in-the-ai-discourse/Deep dive into why Rust's compile times are slow: https://www.pingcap.com/blog/rust-compilation-model-calamity/Y Combinator partners on "100x productivity" claims: https://www.youtube.com/watch?v=IACHfKmZMr8&t=155s
  • 107. Language Design Deep Dive with Elixir Creator José Valim

    02:26:12||Season 1, Ep. 107
    Elixir creator José Valim goes into a very deep dive on language design with Richard, centered around some upcoming major design changes to the Roc programming language.- https://elixir-lang.org- https://roc-lang.org- Unison's algebraic effects: https://www.unison-lang.org/docs/fundamentals/abilities/- Koka's algebraic effects: https://koka-lang.github.io/koka/doc/book.html#why-effects- OCaml's algebraic effects: https://ocaml.org/manual/5.3/effects.html
  • 106. From Scala to Roc with Monica McGuigan

    01:07:42||Season 1, Ep. 106
    Monica McGuigan, a Scala programmer at JP Morgan, talks with Richard about her experiences learning Roc with a Scala background. They get into topics like how language design affects beginners and experts, what parts of functional programming are easier and harder to learn than others, and how language designers inform their design decisions.Support Software Unscripted on Patreon: https://patreon.com/SoftwareUnscriptedMonica's chapter on JSON decoders: https://github.com/roc-lang/book-of-examples/pull/68Grapheme clusters: https://unicode.org/glossary/#extended_grapheme_clusterRoc's string operations: https://www.roc-lang.org/builtins/StrTalk: The Functional Purity Inference Plan: https://youtu.be/42TUAKhzlRI?si=TwxYoqMgh0UXQLfn