Richard Feldman on AI, Programming Languages, and Software | Frontend Masters Podcast Episode #24
Summary
Highlights
Richard Feldman introduces himself and shares his perspective on the current AI landscape, advocating for building higher-quality software with AI rather than just faster, lower-quality software. He also reveals a lesser-known skill: competitive Magic the Gathering, which he used to fund his college education.
Richard plays a rapid-fire game, describing various programming languages including Rust, Go, Python, Kotlin, Haskell, OCaml, F#, Scala, Julia, Zig, Gleam, and Nim. He provides historical context, key features, and personal insights for each language, demonstrating his extensive knowledge.
Richard discusses the challenges of defining functional programming, highlighting the varied and often narrow definitions within the community. He offers his own definition: a functional programming style avoids mutation and side effects, and a functional programming language is one where this style is the primary recommended way to program.
Richard recounts his first coding experiences in Basic, learning from a book endorsed by Bill Gates. He describes handwriting code in elementary school and his transition to Visual Basic and then C++, and the struggles with memory errors. He then shares the story of his first professional job as an intern at Aerospace Corporation, debugging Java Swing applications and his initial exposure to version control systems like CVS and SVN.
Richard talks about his first startup experience after college, which launched in the challenging year of 2008. He discusses the 'use boring technology' philosophy and argues against it, using Perl as an example of how even mainstream technologies can become obsolete, emphasizing the importance of understanding long-term risks and rewards for any technology choice.
Richard details his journey into UI development, including his professional use of CoffeeScript and his personal project, DreamWriter. He explains his initial adoption of React at No Red Inc. and how a frustrating experience with React led him to discover and fall in love with Elm, particularly its refactoring experience and strong type system. He also shares his theory on the initial backlash and eventual dominance of JSX in the React ecosystem, and debunks common misconceptions about the separation of concerns in web technologies (HTML, CSS, JavaScript).
Richard explains his motivation for creating Roc, a new programming language inspired by Elm but designed for a broader range of applications beyond web frontends, including server-side, native desktop, and command-line apps. He emphasizes his goals for high performance and fast compile times, leading him to implement Roc's compiler in Rust. He introduces Roc's unique 'platforms and applications' model, which allows for safe and type-checked embedding in existing codebases and custom API exposure, offering security and modularity benefits.
Richard passionately advocates for high-quality, performant, and reliable software, citing his current work at Zed as an example. He expresses frustration with the current trend of AI being used to produce low-quality software faster and emphasizes his pursuit of using AI to build better, not just quicker, software within Zed. He then discusses his teaching philosophy, which focuses on empowering learners by putting himself in their shoes and making complex topics accessible and practical rather than abstract.
Richard shares his excitement for rewriting the Roc compiler in Zig, and his ongoing work at Zed exploring practical and impactful applications of AI for building high-quality software, moving beyond mere 'vibe coding' or flashy demos. He concludes by reflecting on a common theme throughout his career: using a 'motivational project' to drive his learning of new technologies, pushing through challenges by focusing on the desired outcome.