Hosted by Ryan Peterman
Written by a model from the transcript; not yet reviewed.
Martin Odersky, the creator of Scala, joins Ryan Peterman to discuss programming language design, functional programming, and how artificial intelligence will shape the future of software development. Odersky explains why functional programming emphasizes immutable values and purity to reduce bugs, details how Scala uniquely fuses functional and object-oriented paradigms, and evaluates systems languages like Rust, Zig, and Go. The conversation also covers the mechanics of compilers, the history behind Twitter's early adoption of Scala, and why future programming languages will require rigorous type systems, capability safety, and formal verification to keep AI agents under human control.
The host welcomes listeners and sets the stage for a conversation about programming languages and AI.
Discussion of predictability, fewer bugs, learning curve, and the balance between pure and impure code.
Highlights Scala’s component and module system, and how it complements functional programming.
Comparison of Rust, Go, Zig, and Scala in terms of memory safety, performance, and use cases.
Discussion on Scala’s GC, experimental allocators, and the trade-offs between GC and manual memory management.
Speculation on how AI-generated code will shift focus to interfaces, types, and capabilities.
Odersky predicts fewer but more skilled engineers, higher standards, and the need for formal verification.
Advice on which systems and verification languages to learn, and key books for deepening understanding.
Odersky reflects on Scala’s early challenges, cultural clashes, and lessons learned for future language design.
The guest explains how Scala combined dynamic language flexibility with static typing, making it a powerful tool at the time.
Reflecting on his career, the guest advises taking risks, being adventurous, and staying non-conformist while maintaining focus.
The host thanks the guest, encourages audience engagement, and mentions future guest suggestions.
Defining Functional Programminginsight
Martin Odersky explains that functional programming relies on values and functions rather than changing state, minimizing undocumented side effects and making code much more predictable.
Why Scala Fuses Paradigmsinsight
Scala uniquely combines functional programming with object-oriented programming, using objects and modules for encapsulation where pure functional languages often lack a strong component story.
Rust Overuse in the Stackinsight
Odersky argues that Rust is frequently overused higher up in the software stack where garbage collection is perfectly fine and significantly simplifies writing code.
Twitter initially ran on Ruby and faced severe reliability issues. Their investors pushed for Java, but engineers wanting an OCaml-like language found Scala ran on the JVM, satisfying the board while giving them advanced features.
AI and the Future of Typesinsight
As AI generates mountains of code, human review must shift from code lines to interfaces and types, which will act as precise contracts and safety boundaries between humans and AI agents.
Enforcing Capabilities via Typesstrategy
Odersky describes experimental Scala features that use type systems to track capabilities, ensuring that files, memory arenas, or secrets cannot leak or be accessed outside permitted scopes.
Fewer But Higher Skilled Engineersinsight
Ten years from now, AI will reduce the total number of software engineers needed while raising the profession's standards, requiring practitioners to understand advanced logic and mathematics.
Cultural Clashes in Ecosystemsstory
Introducing full functional features all at once in Scala sparked community culture clashes and over-abstractions, whereas languages like Go benefited initially from restricted feature sets.
“So functional programming is programming with values.”
“If the code is AI-generated, then the focus has to go elsewhere.”
“I would say functional programming is great for 95% of your program.”
“Scala is the only functional language that is also a very capable object oriented language.”
“I think the gap is closing because Python now actually has an optional type syntax and a number of type checkers that check that syntax.”
“Scala was a good bridge between dynamic languages that are slow and sometimes they crash, and solid languages, statically typed languages like Java, which were at the time quite cumbersome to write code.”
“I think to take risks, be adventurous, pay it out. So essentially, don't follow the mainstream.”
Martin Odersky is the creator of Scala and I interviewed him to compare different languages designs (Rust vs Zig vs Python vs Scala) and how AI will impact programming languages. • My ergonomic keyboard project I mentioned, you can follow along here: https://read.compose.llc/ • The Kickstarter page for it: https://www.kickstarter.com/projects/ryanlpeterman/compose-simple-ergonomics-beautifully-done Podcast links: • YouTube: https://youtu.be/LdN4sPWM-WY • Apple: https://podcasts.apple.com/us/podcast/the-peterman-pod/id1777363835 • Transcript: https://www.developing.dev/p/creator-of-scala-comparing-languages?r=n49ky Thank you to this episode's sponsors for supporting my work: • WorkOS: makes your app Enterprise Ready with easy to use APIs to add SSO, SCIM, RBAC, and more in just a few lines of code, check them out at https://workos.com/ • Jira by Atlassian: Get more work done with your favorite agents and models all in one place, check them out at https://jira.dev/ Timestamps: (00:00) Intro (00:44) Why care about functional programming (06:35) Why should people learn Scala (09:26) Rust vs Scala (12:42) Rust vs Zig (15:45) Scala vs Python (18:31) The programming languages that influenced him (22:16) How running on the JVM works (26:33) Why writing a compiler is hard (29:19) Why Twitter adopted Scala early on (31:00) How he believes AI will impact programming languages (43:40) Will there be less engineers in ten years (44:34) Top programming languages to learn to grow (46:18) Top technical book recommendation (46:51) Why he chose academia instead of industry (48:28) Reflecting on Scala (55:42) Advice for his younger self (56:33) Outro Where to find Martin: • Wikipedia: https://en.wikipedia.org/wiki/Martin_Odersky • Website: https://people.epfl.ch/martin.odersky • X/Twitter: https://x.com/odersky • GitHub: https://github.com/odersky Where to find Ryan: • Newsletter: https://www.developing.dev/ • X/Twitter: https://x.com/ryanlpeterman • LinkedIn: https://www.linkedin.com/in/ryanlpeterman/ • Threads: https://www.threads.com/@ryanlpeterman • Instagram: https://www.instagram.com/ryanlpeterman • TikTok: https://www.tiktok.com/@ryanlpeterman Referenced in this episode: • Structure and Interpretation of Computer Programs: https://web.mit.edu/6.001/6.037/sicp.pdf • A Brief, Incomplete, and Mostly Wrong History of Programming Languages (book): http://james-iry.blogspot.com/2009/05/brief-incomplete-and-mostly-wrong.html
9,488 words · 2 speakers
Speaker names marked are inferred from speaking time and the show’s known hosts — they are not voice-verified.
Page updated · transcript and summary are machine-generated