Share

Software Unscripted
Compiling Smart Contracts with Lucas Rosa
Season 1, Ep. 89
•
Richard talks with Lucas Rosa, a compiler engineer working on the Aiken programming language for smart contracts, about tradeoffs in language and compiler design, property-based testing, syntax and familiarity, and compile-time evaluation of constants.
More episodes
View all episodes

Jonathan Blow on Programming Language Design
01:41:42|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/IdpD5QIVOKQECS 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=Z5cqazo4QU7AibzBRoc Programming Language - https://roc-lang.orgCasey Muratori's "Performance-Aware Programming" Course - https://www.computerenhance.com/p/welcome-to-the-performance-awareFile 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/ConstCliff Click's Sea of Nodes Compiler IR - https://github.com/SeaOfNodes/Chapters00:00 The Programming Establishment02:04 Metaprogramming05:04 Compile-Time Execution08:05 Language Feature Interoperability10:53 Compile Time Execution27:52 Cross-Compiling and FFI31:04 Determinism in Programming35:07 Balancing Power and Safety40:11 Memory Safety vs. Performance50:15 The Evolution of Software Performance55:32 Performance Awareness01:03:56 Dependencies and Version Control01:14:54 Dependency Availability Risk01:18:42 Memory Management01:24:51 Sandboxing01:30:23 Operating Systems
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. 109Richard 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. 108Longtime 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. 107Elixir 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. 106Monica 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. 105Mike 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