Elixir Wizards

José Valim, Guillaume Duboc, and Giuseppe Castagna on the Future of Types in Elixir


Listen Later

It’s the Season 10 finale of the Elixir Wizards podcast! José Valim, Guillaume Duboc, and Giuseppe Castagna join Wizards Owen Bickford and Dan Ivovich to dive into the prospect of types in the Elixir programming language! They break down their research on set-theoretical typing and highlight their goal of creating a type system that supports as many Elixir idioms as possible while balancing simplicity and pragmatism.

José, Guillaume, and Giuseppe talk about what initially sparked this project, the challenges in bringing types to Elixir, and the benefits that the Elixir community can expect from this exciting work. Guillaume's formalization and Giuseppe's "cutting-edge research" balance José's pragmatism and "Guardian of Orthodoxy" role. Decades of theory meet the needs of a living language, with open challenges like multi-process typing ahead. They come together with a shared joy of problem-solving that will accelerate Elixir's continued growth.

Key Topics Discussed in this Episode:
  • Adding type safety to Elixir through set theoretical typing
  • How the team chose a type system that supports as many Elixir idioms as possible
  • Balancing simplicity and pragmatism in type system design
  • Addressing challenges like typing maps, pattern matching, and guards
  • The tradeoffs between Dialyzer and making types part of the core language
  • Advantages of typing for catching bugs, documentation, and tooling
  • The differences between typing in the Gleam programming language vs. Elixir
  • The possibility of type inference in a set-theoretic type system
  • The history and development of set-theoretic types over 20 years
  • Gradual typing techniques for integrating typed and untyped code
  • How José and Giuseppe initially connected through research papers
  • Using types as a form of "mechanized documentation"
  • The risks and tradeoffs of choosing syntax
  • Cheers to another decade of Elixir!
  • A big thanks to this season’s guests and all the listeners!
  • Links and Resources Mentioned in this Episode:

    Bringing Types to Elixir | Guillaume Duboc & Giuseppe Castagna | ElixirConf EU 2023

    Keynote: Celebrating the 10 Years of Elixir | José Valim | ElixirConf EU 2022
    OCaml industrial-strength functional programming https://ocaml.org/
    ℂDuce: a language for transformation of XML documents http://www.cduce.org/
    Ballerina coding language https://ballerina.io/
    Luau coding language https://luau-lang.org/
    Gleam type language https://gleam.run/
    "The Design Principles of the Elixir Type System" by G. Castagna, G. Duboc, and J. Valim
    "A Gradual Type System for Elixir" by M. Cassola, A. Talagorria, A. Pardo, and M. Viera
    "Programming with union, intersection, and negation types", by Giuseppe Castagna
    "Covariance and Contravariance: a fresh look at an old issue (a primer in advanced type systems for learning functional programmers)" by Giuseppe Castagna
    "A reckless introduction to Hindley-Milner type inference"

    Special Guests: Giuseppe Castagna, Guillaume Duboc, and José Valim.

    ...more
    View all episodesView all episodes
    Download on the App Store

    Elixir WizardsBy SmartLogic LLC

    • 4.9
    • 4.9
    • 4.9
    • 4.9
    • 4.9

    4.9

    22 ratings


    More shows like Elixir Wizards

    View all
    Software Engineering Radio - the podcast for professional software developers by se-radio@computer.org

    Software Engineering Radio - the podcast for professional software developers

    262 Listeners

    The Changelog: Software Development, Open Source by Changelog Media

    The Changelog: Software Development, Open Source

    285 Listeners

    Startups For the Rest of Us by Rob Walling

    Startups For the Rest of Us

    694 Listeners

    Software Engineering Daily by Software Engineering Daily

    Software Engineering Daily

    630 Listeners

    Syntax - Tasty Web Development Treats by Wes Bos & Scott Tolinski - Full Stack JavaScript Web Developers

    Syntax - Tasty Web Development Treats

    985 Listeners

    REWORK by 37signals

    REWORK

    212 Listeners

    CoRecursive: Coding Stories by Adam Gordon Bell - Software Developer

    CoRecursive: Coding Stories

    185 Listeners

    Elixir Mix by Charles M Wood

    Elixir Mix

    13 Listeners

    The Stack Overflow Podcast by The Stack Overflow Podcast

    The Stack Overflow Podcast

    63 Listeners

    Thinking Elixir Podcast by ThinkingElixir.com

    Thinking Elixir Podcast

    31 Listeners

    Beam Radio by Lars Wikman

    Beam Radio

    11 Listeners

    Software Unscripted by Richard Feldman

    Software Unscripted

    26 Listeners

    Oxide and Friends by Oxide Computer Company

    Oxide and Friends

    47 Listeners

    Elixir Mentor by Jacob Luetzow

    Elixir Mentor

    2 Listeners

    Elixir Friends by German Velasco

    Elixir Friends

    0 Listeners