Software Unscripted

Jonathan Blow on Programming Language Design

24 snips
Nov 15, 2025
Join Jonathan Blow, the acclaimed game designer behind Braid and The Witness, as he dives deep into the intricacies of programming language design, particularly for game development. He discusses powerful compile-time execution and the crucial balance between safety and performance. With insights into memory safety, dependency management, and the need for better systems tools, Jonathan critiques current practices while advocating for innovative solutions. This conversation is a treasure trove for anyone interested in the future of programming languages!
Ask episode
AI Snips
Chapters
Transcript
Episode notes
INSIGHT

Heap Defaults Produce Pointer Jungles

  • Jonathan Blow argues C/C++'s default heap-and-pointer model creates a pointer jungle that complicates lifetimes and destroys performance.
  • He links widespread dynamic allocation to slower, harder-to-maintain code and extra destructor work developers must write.
ADVICE

Measure Benefits Before Adding Restrictions

  • Prioritize exploring a feature's utility before locking down restrictions like security constraints on compile-time execution.
  • Do a cost–benefit analysis: measure benefits before rejecting risky but powerful language features.
INSIGHT

Interoperability Costs Complexity

  • Language power comes from feature interoperability, which increases implementation complexity and bug surface.
  • Your complexity budget limits which features you can support well given team size.
Get the Snipd Podcast app to discover more snips from this episode
Get the app