{"version":"1.0","type":"rich","provider_name":"Acast","provider_url":"https://acast.com","height":250,"width":700,"html":"<iframe src=\"https://embed.acast.com/$/664fde3eda02bb0012bad909/6918f06ee42e3466f29467f9?\" frameBorder=\"0\" width=\"700\" height=\"250\"></iframe>","title":"Jonathan Blow on Programming Language Design","thumbnail_width":200,"thumbnail_height":200,"thumbnail_url":"https://open-images.acast.com/shows/664fde3eda02bb0012bad909/1763241788052-9a2a6e6a-f018-4c6b-a3f7-f47ba76abeb1.jpeg?height=200","description":"<p>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.</p><p><br></p><p>Keynote &amp; Tech Demo - <a href=\"https://youtu.be/IdpD5QIVOKQ\" rel=\"noopener noreferrer\" target=\"_blank\">https://youtu.be/IdpD5QIVOKQ</a></p><p>ECS and Rust's Borrow Checker - <a href=\"https://youtu.be/4t1K66dMhWk\" rel=\"noopener noreferrer\" target=\"_blank\">https://youtu.be/4t1K66dMhWk</a></p><p>\"The 30 Million Line Problem\" - <a href=\"https://youtu.be/kZRE7HIO3vk\" rel=\"noopener noreferrer\" target=\"_blank\">https://youtu.be/kZRE7HIO3vk</a></p><p>\"A New Programming Language for Games\" - <a href=\"https://youtu.be/TH9VCN6UkyQ?si=Z5cqazo4QU7AibzB\" rel=\"noopener noreferrer\" target=\"_blank\">https://youtu.be/TH9VCN6UkyQ?si=Z5cqazo4QU7AibzB</a></p><p>Roc Programming Language - <a href=\"https://roc-lang.org\" rel=\"noopener noreferrer\" target=\"_blank\">https://roc-lang.org</a></p><p>Casey Muratori's \"Performance-Aware Programming\" Course - <a href=\"https://www.computerenhance.com/p/welcome-to-the-performance-aware\" rel=\"noopener noreferrer\" target=\"_blank\">https://www.computerenhance.com/p/welcome-to-the-performance-aware</a></p><p>File Pilot File Explorer - https://filepilot.tech/</p><p>Ghostty Terminal - <a href=\"https://ghostty.org/\" rel=\"noopener noreferrer\" target=\"_blank\">https://ghostty.org/</a></p><p>Language Server Protocol - <a href=\"https://microsoft.github.io/language-server-protocol/\" rel=\"noopener noreferrer\" target=\"_blank\">https://microsoft.github.io/language-server-protocol/</a></p><p>WebAssembly Integer Sizes - <a href=\"https://developer.mozilla.org/en-US/docs/WebAssembly/Reference/Numeric/Const\" rel=\"noopener noreferrer\" target=\"_blank\">https://developer.mozilla.org/en-US/docs/WebAssembly/Reference/Numeric/Const</a></p><p>Cliff Click's Sea of Nodes Compiler IR - <a href=\"https://github.com/SeaOfNodes/\" rel=\"noopener noreferrer\" target=\"_blank\">https://github.com/SeaOfNodes/</a></p><p><br></p><p><strong>Chapters</strong></p><p>00:00 The Programming Establishment</p><p>02:04 Metaprogramming</p><p>05:04 Compile-Time Execution</p><p>08:05 Language Feature Interoperability</p><p>10:53 Compile Time Execution</p><p>27:52 Cross-Compiling and FFI</p><p>31:04 Determinism in Programming</p><p>35:07 Balancing Power and Safety</p><p>40:11 Memory Safety vs. Performance</p><p>50:15 The Evolution of Software Performance</p><p>55:32 Performance Awareness</p><p>01:03:56 Dependencies and Version Control</p><p>01:14:54 Dependency Availability Risk</p><p>01:18:42 Memory Management</p><p>01:24:51 Sandboxing</p><p>01:30:23 Operating Systems</p>","author_name":"Richard Feldman"}