Elixir Wizards

Creating a Language: Elixir vs. Roc with José Valim and Richard Feldman (Elixir Wizards X Software Unscripted Podcast)


Listen Later

For the final episode of Elixir Wizards’ Season 11 “Branching Out from Elixir,” we’re featuring a recent discussion from the Software Unscripted podcast. In this conversation, José Valim, creator of Elixir, interviews Richard Feldman, creator of Roc. They compare notes on the process and considerations for creating a language.

This episode covers the origins of creating a language, its influences, and how goals shape the tradeoffs in programming language design. José and Richard share anecdotes from their experiences guiding the evolution of Elixir and Roc. The discussion provides an insightful look at the experimentation and learning involved in crafting new languages.

Topics discussed in this episode
  • What inspires the creation of a new programming language
  • Goals and use cases for a programming language
  • Influences from Elm, Rust, Haskell, Go, OCaml, and more
  • Tradeoffs involved in expressiveness of type systems
  • Opportunistic mutation for performance gains in a functional language
  • Minimum version selection for dependency resolution
  • Build time considerations with type checking and monomorphization
  • Design experiments and rolling back features that don’t work out
  • History from the first simple interpreter to today's real programming language
  • Design considerations around package management and versioning
  • Participation in Advent of Code to gain new users and feedback
  • Providing performance optimization tools to users in the future
  • Tradeoffs involved in picking integer types and arithmetic
  • Comparing floats and equality checks on dictionaries
  • Using abilities to customize equality for custom types
  • Ensuring availability of multiple package versions for incremental upgrades
  • Treating major version bumps as separate artifacts
  • Roc's focus on single-threaded performance
  • Links mentioned in this episode

    Software Unscripted Podcast https://feeds.resonaterecordings.com/software-unscripted

    Roc Programming Language https://www.roc-lang.org/
    Roc Lang on Github https://github.com/roc-lang/roc
    Elm Programming Language https://elm-lang.org/
    Elm in Action by Richard Feldman https://www.manning.com/books/elm-in-action
    Richard Feldman on Github https://github.com/rtfeldman
    Lua Programming Language https://www.lua.org/
    Vimscript Guide https://google.github.io/styleguide/vimscriptfull.xml
    OCaml Programming Language https://ocaml.org/
    Advent of Code https://adventofcode.com/
    Roc Language on Twitter https://twitter.com/roc_lang
    Richard Feldman on Twitter https://twitter.com/rtfeldman
    Roc Zulip Chat https://roc.zulipchat.com
    Clojure Programming Language https://clojure.org/
    Talk: Persistent Data Structures and Managed References by Rich Hickey https://www.youtube.com/watch?v=toD45DtVCFM
    Koka Programming Language https://koka-lang.github.io/koka/doc/index.html
    Flix Programming Language https://flix.dev/
    Clojure Transients https://clojure.org/reference/transients
    Haskell Software Transactional Memory https://wiki.haskell.org/Software_transactional_memory
    Rust Traits https://doc.rust-lang.org/book/ch10-02-traits.html
    CoffeeScript https://coffeescript.org/
    Cargo Package Management https://doc.rust-lang.org/book/ch01-03-hello-cargo.html
    Versioning in Golang https://research.swtch.com/vgo-principles

    Special Guests: José Valim and Richard Feldman.

    ...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