
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!
AI Snips
Chapters
Transcript
Episode notes
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.
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.
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.
