Skip to content

Creator of Scala: Comparing Languages And How AI Will Impact Them | Martin Odersky

The Peterman Pod

Hosted by Ryan Peterman

57m
Transcript

Original podcast

Summary

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.

  • Keep side effects to a bare minimum in your programs to improve predictability and reduce hard-to-track bugs. 0:52
  • Choose a memory-safe systems language like Rust or Go when building low-level infrastructure or application servers. 8:46
  • Learn multiple programming languages, including a systems language and a formal verifier, to expand your engineering mindset. 44:49
  • Take technical risks and pursue non-conformist, adventurous ideas rather than blindly following the mainstream. 55:55

Chapters

  1. 0:00
    Podcast Introduction

    The host welcomes listeners and sets the stage for a conversation about programming languages and AI.

  2. 0:33
    Benefits and Challenges of Functional Programming

    Discussion of predictability, fewer bugs, learning curve, and the balance between pure and impure code.

  3. 6:48
    Scala’s Object-Oriented Strengths

    Highlights Scala’s component and module system, and how it complements functional programming.

  4. 8:34
    Systems Programming Landscape

    Comparison of Rust, Go, Zig, and Scala in terms of memory safety, performance, and use cases.

  5. 11:51
    Garbage Collection vs Manual Memory

    Discussion on Scala’s GC, experimental allocators, and the trade-offs between GC and manual memory management.

  6. 31:00
    AI’s Impact on Programming Languages

    Speculation on how AI-generated code will shift focus to interfaces, types, and capabilities.

  7. 43:40
    Future of Software Engineering

    Odersky predicts fewer but more skilled engineers, higher standards, and the need for formal verification.

  8. 44:34
    Learning Path and Language Recommendations

    Advice on which systems and verification languages to learn, and key books for deepening understanding.

  9. 48:28
    Reflections on Scala’s History and Culture

    Odersky reflects on Scala’s early challenges, cultural clashes, and lessons learned for future language design.

  10. 54:37
    Scala as a Bridge Between Paradigms

    The guest explains how Scala combined dynamic language flexibility with static typing, making it a powerful tool at the time.

  11. 55:44
    Advice to Younger Self

    Reflecting on his career, the guest advises taking risks, being adventurous, and staying non-conformist while maintaining focus.

  12. 56:28
    Closing Thanks and Acknowledgements

    The host thanks the guest, encourages audience engagement, and mentions future guest suggestions.

Highlights

  • 0:52

    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.

  • 6:47

    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.

  • 10:13

    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.

  • 29:33

    Twitter Adopting Scalastory

    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.

  • 32:22

    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.

  • 36:30

    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.

  • 43:46

    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.

  • 49:01

    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.

Quotes

  • “So functional programming is programming with values.”
    Unnamed speaker · 0:52
  • “If the code is AI-generated, then the focus has to go elsewhere.”
    Unnamed speaker · 0:26
  • “I would say functional programming is great for 95% of your program.”
    Unnamed speaker · 4:35
  • “Scala is the only functional language that is also a very capable object oriented language.”
    Unnamed speaker · 6:47
  • “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.”
    Unnamed speaker · 16:30
  • “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.”
    Unnamed speaker · 54:54
  • “I think to take risks, be adventurous, pay it out. So essentially, don't follow the mainstream.”
    Unnamed speaker · 55:55
  • WorkOS 24:14–24:32
  • Jira 24:36–24:56
  • Kickstarter 56:34–57:28

About this episode

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

Transcript

0:00
57:30

9,488 words · 2 speakers

Speaker names marked are inferred from speaking time and the show’s known hosts — they are not voice-verified.

Topics

  • Scala
  • Java

Page updated · transcript and summary are machine-generated