Listen "96: Reviewing Elixir with José Valim - Part 4"
Episode Synopsis
José Valim returns for part 4 in our 5 part series as we count down to the 10 year anniversary of the Elixir project we know and love! In Part 4, we talk through the Elixir releases of 1.10, 1.11, and 1.12. We go deeper on the philosophy of “explicit vs implicit” and how that informs many design decisions about the language. We learn about how Elixir and Erlang loggers were unified, how matching on map keys in guards enabled receives block enhancements, how common date sorting bugs were solved with Enum.sort improvements (that you should really listen to), the improvements to application config, how exceptions work in Erlang and Elixir and much more! A packed episode!
Show Notes online - http://podcast.thinkingelixir.com/96 (http://podcast.thinkingelixir.com/96)
Elixir Community News
- https://github.com/livebook-dev/livebook/pull/1115 (https://github.com/livebook-dev/livebook/pull/1115) – Livebook adds “Code Focus Mode” making it easier to focus on the code cells.
- https://github.com/livebook-dev/livebook/discussions (https://github.com/livebook-dev/livebook/discussions) – Livebook project announced and opened a Github Discussions section to the project.
- https://github.com/phoenixframework/phoenixlivedashboard/pull/367 (https://github.com/phoenixframework/phoenix_live_dashboard/pull/367) – Full screen mode contribution added to Phoenix LiveDashboard project.
- https://podcast.thinkingelixir.com/92 (https://podcast.thinkingelixir.com/92) – Mitch Hanberg talked with us previously about Temple
- https://github.com/mhanberg/eexcompilervisualizer (https://github.com/mhanberg/eex_compiler_visualizer) – Mitch Hanberg created an “EEX Compiler Visualizer” project.
- https://twitter.com/mitchellh/status/1515369637726224385?s=12&t=so7B66NTrJKPwDWLqMxpJA (https://twitter.com/mitchellh/status/1515369637726224385?s=12&t=so7B66NTrJKPwDWLqMxpJA) – The Zig language reached the milestone of being self-hosted
- https://github.com/ziglang/zig/pull/11442 (https://github.com/ziglang/zig/pull/11442) – Zig being self-hosted means the compiler is capable of building itself.
Do you have some Elixir news to share? Tell us at @ThinkingElixir (https://twitter.com/ThinkingElixir) or email at [email protected] (mailto:[email protected])
Discussion Resources
- https://github.com/elixir-lang/elixir/blob/v1.10/CHANGELOG.md (https://github.com/elixir-lang/elixir/blob/v1.10/CHANGELOG.md) – Elixir 1.10 changelog
- https://elixirforum.com/t/discussion-incorporating-erlang-otp-21-map-guards-in-elixir/14816 (https://elixirforum.com/t/discussion-incorporating-erlang-otp-21-map-guards-in-elixir/14816) – Incorporating Erlang/OTP 21 map guards in Elixir
- https://github.com/elixir-lang/elixir/blob/v1.11/CHANGELOG.md (https://github.com/elixir-lang/elixir/blob/v1.11/CHANGELOG.md) – Elixir 1.11 changelog
- https://github.com/elixir-lang/elixir/blob/v1.12/CHANGELOG.md (https://github.com/elixir-lang/elixir/blob/v1.12/CHANGELOG.md) – Elixir 1.12 changelog
- https://www.erlang.org/eeps/eep-0054.html (https://www.erlang.org/eeps/eep-0054.html) – EEP 54 - Provide more information about errors
- https://github.com/sasa1977/boundary (https://github.com/sasa1977/boundary)
- https://hexdocs.pm/elixir/Enum.html#sort/2-sorting-structs (https://hexdocs.pm/elixir/Enum.html#sort/2-sorting-structs) – Improvements to sort-based APIs in Enum - Enum.sort(dates, Date)
- https://hexdocs.pm/elixir/Calendar.html#strftime/3 (https://hexdocs.pm/elixir/Calendar.html#strftime/3)
- https://github.com/elixir-nx/nx (https://github.com/elixir-nx/nx)
- https://livebook.dev/ (https://livebook.dev/)
- https://hexdocs.pm/mix/Mix.html#install/2 (https://hexdocs.pm/mix/Mix.html#install/2)
- CMD+\ or CTRL+\
- https://github.com/doawoo/teex (https://github.com/doawoo/teex)
- https://hexdocs.pm/elixir/Kernel.html (https://hexdocs.pm/elixir/Kernel.html)
- https://hexdocs.pm/elixir/Kernel.html#then/2 (https://hexdocs.pm/elixir/Kernel.html#then/2)
- https://hexdocs.pm/elixir/Kernel.html#tap/2 (https://hexdocs.pm/elixir/Kernel.html#tap/2)
- https://hexdocs.pm/elixir/Range.html (https://hexdocs.pm/elixir/Range.html)
- https://hexdocs.pm/elixir/Range.html#disjoint?/2 (https://hexdocs.pm/elixir/Range.html#disjoint?/2)
- https://github.com/elixir-lang/elixir/blob/a64d42f5d3cb6c32752af9d3312897e8cd5bb7ec/lib/elixir/lib/range.ex#L249-L251 (https://github.com/elixir-lang/elixir/blob/a64d42f5d3cb6c32752af9d3312897e8cd5bb7ec/lib/elixir/lib/range.ex#L249-L251)
- https://math.stackexchange.com/questions/1656120/formula-to-find-the-first-intersection-of-two-arithmetic-progressions (https://math.stackexchange.com/questions/1656120/formula-to-find-the-first-intersection-of-two-arithmetic-progressions)
Guest Information
- https://twitter.com/josevalim (https://twitter.com/josevalim) – on Twitter
- https://github.com/josevalim (https://github.com/josevalim) – on Github
- https://dashbit.co/ (https://dashbit.co/) – Dashbit website and blog
- https://erlef.org/news/ (https://erlef.org/news/) – The Erlang Ecosystem Foundation news
Find us online
- Message the show - @ThinkingElixir (https://twitter.com/ThinkingElixir)
- Email the show - [email protected] (mailto:[email protected])
- Mark Ericksen - @brainlid (https://twitter.com/brainlid)
- David Bernheisel - @bernheisel (https://twitter.com/bernheisel)
- Cade Ward - @cadebward (https://twitter.com/cadebward)
Show Notes online - http://podcast.thinkingelixir.com/96 (http://podcast.thinkingelixir.com/96)
Elixir Community News
- https://github.com/livebook-dev/livebook/pull/1115 (https://github.com/livebook-dev/livebook/pull/1115) – Livebook adds “Code Focus Mode” making it easier to focus on the code cells.
- https://github.com/livebook-dev/livebook/discussions (https://github.com/livebook-dev/livebook/discussions) – Livebook project announced and opened a Github Discussions section to the project.
- https://github.com/phoenixframework/phoenixlivedashboard/pull/367 (https://github.com/phoenixframework/phoenix_live_dashboard/pull/367) – Full screen mode contribution added to Phoenix LiveDashboard project.
- https://podcast.thinkingelixir.com/92 (https://podcast.thinkingelixir.com/92) – Mitch Hanberg talked with us previously about Temple
- https://github.com/mhanberg/eexcompilervisualizer (https://github.com/mhanberg/eex_compiler_visualizer) – Mitch Hanberg created an “EEX Compiler Visualizer” project.
- https://twitter.com/mitchellh/status/1515369637726224385?s=12&t=so7B66NTrJKPwDWLqMxpJA (https://twitter.com/mitchellh/status/1515369637726224385?s=12&t=so7B66NTrJKPwDWLqMxpJA) – The Zig language reached the milestone of being self-hosted
- https://github.com/ziglang/zig/pull/11442 (https://github.com/ziglang/zig/pull/11442) – Zig being self-hosted means the compiler is capable of building itself.
Do you have some Elixir news to share? Tell us at @ThinkingElixir (https://twitter.com/ThinkingElixir) or email at [email protected] (mailto:[email protected])
Discussion Resources
- https://github.com/elixir-lang/elixir/blob/v1.10/CHANGELOG.md (https://github.com/elixir-lang/elixir/blob/v1.10/CHANGELOG.md) – Elixir 1.10 changelog
- https://elixirforum.com/t/discussion-incorporating-erlang-otp-21-map-guards-in-elixir/14816 (https://elixirforum.com/t/discussion-incorporating-erlang-otp-21-map-guards-in-elixir/14816) – Incorporating Erlang/OTP 21 map guards in Elixir
- https://github.com/elixir-lang/elixir/blob/v1.11/CHANGELOG.md (https://github.com/elixir-lang/elixir/blob/v1.11/CHANGELOG.md) – Elixir 1.11 changelog
- https://github.com/elixir-lang/elixir/blob/v1.12/CHANGELOG.md (https://github.com/elixir-lang/elixir/blob/v1.12/CHANGELOG.md) – Elixir 1.12 changelog
- https://www.erlang.org/eeps/eep-0054.html (https://www.erlang.org/eeps/eep-0054.html) – EEP 54 - Provide more information about errors
- https://github.com/sasa1977/boundary (https://github.com/sasa1977/boundary)
- https://hexdocs.pm/elixir/Enum.html#sort/2-sorting-structs (https://hexdocs.pm/elixir/Enum.html#sort/2-sorting-structs) – Improvements to sort-based APIs in Enum - Enum.sort(dates, Date)
- https://hexdocs.pm/elixir/Calendar.html#strftime/3 (https://hexdocs.pm/elixir/Calendar.html#strftime/3)
- https://github.com/elixir-nx/nx (https://github.com/elixir-nx/nx)
- https://livebook.dev/ (https://livebook.dev/)
- https://hexdocs.pm/mix/Mix.html#install/2 (https://hexdocs.pm/mix/Mix.html#install/2)
- CMD+\ or CTRL+\
- https://github.com/doawoo/teex (https://github.com/doawoo/teex)
- https://hexdocs.pm/elixir/Kernel.html (https://hexdocs.pm/elixir/Kernel.html)
- https://hexdocs.pm/elixir/Kernel.html#then/2 (https://hexdocs.pm/elixir/Kernel.html#then/2)
- https://hexdocs.pm/elixir/Kernel.html#tap/2 (https://hexdocs.pm/elixir/Kernel.html#tap/2)
- https://hexdocs.pm/elixir/Range.html (https://hexdocs.pm/elixir/Range.html)
- https://hexdocs.pm/elixir/Range.html#disjoint?/2 (https://hexdocs.pm/elixir/Range.html#disjoint?/2)
- https://github.com/elixir-lang/elixir/blob/a64d42f5d3cb6c32752af9d3312897e8cd5bb7ec/lib/elixir/lib/range.ex#L249-L251 (https://github.com/elixir-lang/elixir/blob/a64d42f5d3cb6c32752af9d3312897e8cd5bb7ec/lib/elixir/lib/range.ex#L249-L251)
- https://math.stackexchange.com/questions/1656120/formula-to-find-the-first-intersection-of-two-arithmetic-progressions (https://math.stackexchange.com/questions/1656120/formula-to-find-the-first-intersection-of-two-arithmetic-progressions)
Guest Information
- https://twitter.com/josevalim (https://twitter.com/josevalim) – on Twitter
- https://github.com/josevalim (https://github.com/josevalim) – on Github
- https://dashbit.co/ (https://dashbit.co/) – Dashbit website and blog
- https://erlef.org/news/ (https://erlef.org/news/) – The Erlang Ecosystem Foundation news
Find us online
- Message the show - @ThinkingElixir (https://twitter.com/ThinkingElixir)
- Email the show - [email protected] (mailto:[email protected])
- Mark Ericksen - @brainlid (https://twitter.com/brainlid)
- David Bernheisel - @bernheisel (https://twitter.com/bernheisel)
- Cade Ward - @cadebward (https://twitter.com/cadebward)
More episodes of the podcast Thinking Elixir Podcast
283: Erlang Turns 27 and React at Risk
16/12/2025
282: Type Systems and View Transitions
09/12/2025
281: Planning for the Unexpected
02/12/2025
280: Dark Matter Developers
25/11/2025
279: Hot Code Upgrades and Hotter AI Takes
18/11/2025
278: WAL-ing Through Database Changes
11/11/2025
277: Searching Across the Hexiverse
04/11/2025
276: Elixir v1.19 Types and Speed
28/10/2025
275: From Slop to Success?
21/10/2025
274: Protocols, Permissions, and Performance
14/10/2025
ZARZA We are Zarza, the prestigious firm behind major projects in information technology.