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

  • 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
  • 105. Testing in Production with Mike Bryzek

    01:17:50||Season 1, Ep. 105
    Mike Bryzek has been a technical cofounder of two very successful companies using some very unorthodox technical strategies that have worked out very well for him and his teams! These include testing in production, spending the first few months of a brand-new company's life investing in automation and tooling before shipping a product, and microservices - but not done in the way I've usually heard them described.Support Software Unscripted on Patreon: https://patreon.com/SoftwareUnscripted