Software Unscripted

Richard Feldman
undefined
Dec 10, 2023 • 1h 9min

Making JITted Code Faster with Chris Nuernberger

Chris Nuernberger, experienced in making code run faster in the context of the JVM and optimizing C++ code, discusses optimizing code in V8 and the JVM, automatic parallelization, Haskell's success as a language, language design choices in rock, challenges of incorporating dynamic libraries in the rock compiler, and the appeal of having everything in one language.
undefined
26 snips
Dec 1, 2023 • 2h 7min

Things Web Devs Can Learn from Game Devs with Casey Muratori

Richard talks with Casey Muratori, game engine programmer and creator of the term Immediate Mode GUIs, about performance and programming culture, memory safety's impact on program architecture, and lessons for web development from game development, including improvements to CSS and different approaches to front-end development.
undefined
Nov 26, 2023 • 1h 13min

How Programming has Changed with Conor Hoekstra

Conor Hoekstra, expert in programming languages, discusses the sustained success of programming languages, the rarity of big tech companies adopting new languages, the evolution of programming from ones and zeros to prompt engineering, challenges of using AI editing services, the future of programming and job opportunities, a comparison of Python, Rust, and C++, and exploring the benefits and annoyances of co-pilot in programming.
undefined
Nov 18, 2023 • 49min

Escaping Software Disenchantment with Nikita Prokopov

Nikita Prokopov, open-source Clojure developer and creator of the Fira Code typeface, discusses software disenchantment, Rust programming language, balancing developer ergonomics and performance, optimizing a parser, challenges of upgrading software libraries, impact of complexity on development, and personal preferences in software culture.
undefined
Nov 6, 2023 • 50min

WebAssembly in Practice with Brian Carroll

Richard interviews Brian Carroll, an expert in using WebAssembly in practice. They discuss the benefits and challenges of WebAssembly, its slow adoption, and its potential to replace JavaScript. They also explore the drawbacks of using Electron for app development and the efficiency of web browsers as a software delivery platform. The podcast compares WebAssembly and JavaScript, highlighting when to use each and discussing their advantages and performance differences. Additionally, they delve into the variations in SIMD instructions targeting specific architectures and the limitations of WebAssembly for front-end development. The podcast concludes with speculation about widespread adoption and the potential for WebAssembly to replace JavaScript in building applications.
undefined
Oct 22, 2023 • 1h 7min

Disassembling Languages with Matt Godbolt

Matt Godbolt, author of godbolt.org Compiler Explorer, discusses disassembling language designs including reference counting optimizations, destructors and unwinding, and defending the decision of NaN != NaN. They also explore the benefits of Dwarf Debug Format, stack unwinding, memory allocation strategies, and the logic behind NaN in programming. Additionally, they touch on reference counting implementation and advantages of atomic instructions for thread sharing.
undefined
Oct 13, 2023 • 1h 5min

Designing Compilers for Speed with Troels Henriksen

In this podcast, Troels Henriksen, co-creator of the Futhark language, shares insights on designing compilers for faster performance. They discuss challenges in identifying dependencies in recursive functions, bringing names and scopes into functions, and the benefits of a compact tree representation in compiler design. They also explore how compilers can optimize program performance, the evolution of efficient function programming, and the goal of creating a fast functional programming language with automatic memory management.
undefined
Sep 21, 2023 • 1h 26min

Gradual vs Static Typing with José Valim

Richard talks with José Valim, creator of Elixir, about gradual vs static typing. They discuss dynamic typing in TypeScript, expressiveness and correctness in API design, resurgence of static typing, notebooks in data science, and the tug of war between gradual and static typing.
undefined
Sep 12, 2023 • 58min

The SemVer Rabbit Hole with Predrag Gruevski

Richard interviews Predrag Gruevski, author of cargo-semver-checks, on the challenges of semantic versioning in Rust, trade-offs in enforcement, issues with changing function types, alternative versioning, minor and patch versions, and automation in versioning schemes. They also discuss the tools rock glue and Trustfall for embedding rocks and querying codebases.
undefined
Sep 7, 2023 • 50min

Type System Complexity with Chris Krycho

Chris Krycho, TypeScript expert, discusses challenges of migrating code to TypeScript at LinkedIn, trade-offs between Rust and TypeScript in companies and operating systems, differences between JSON decoders in Elm and TypeScript, handling payload errors and backwards compatibility, complexities of TypeScript's type system, and balancing API hiding and exposing.

The AI-powered Podcast Player

Save insights by tapping your headphones, chat with episodes, discover the best highlights - and more!
App store bannerPlay store banner
Get the app