ancatrusca

ancatrusca

BEAM There, Done That with Annette Bieniusa & Guillaume Duboc - Typing Erlang & Elixir After 30 Years

The type system landing in Elixir 1.20 has been discussed in fragments across a lot of threads. A recent BEAM There, Done That episode brings the full picture together in one place, with Guillaume Duboc (PhD from IRIF Paris, now at Dashbit) and Annette Bieniusa (professor, RPTU Germany, building a parallel etalizer for Erlang) both on the same conversation.
What’s worth knowing for Elixir developers specifically:
The system is currently in warning mode, not rejection mode. When a warning fires, the design goal is that it reflects a definite bug 90% of the time, following the same philosophy as Dialyzer. Strict rejection - where a function with a type annotation must satisfy that contract at compile time or the program doesn’t compile - is a future step, not part of the initial release.
Message typing is explicitly out of scope for now. The current system types the functional core: functions, pattern matching, unions, intersections, negations. Processes and messages are handled through the gradual dynamic escape hatch until that feature is tackled separately.
The gradual design is not like TypeScript’s any. The dynamic type is part of the set-theoretic structure from the ground up, not bolted on. That means the type checker knows how to reason about gradual types structurally, which avoids some of the awkward interactions TypeScript has with any and unknown.
Francesco’s closing frame in the episode is worth sharing: Elixir 1.20’s type system isn’t the end of a 30-year argument. It’s the first moment that argument has both the theoretical foundations and the engineering pragmatism to actually move forward together.
Try the RC and report back. Both teams explicitly want feedback on where the current warnings are useful and where they’re generating noise.

Where Next?

Popular in Podcasts Top

brainlid
Episode 137 of Thinking Elixir. After covering the week’s news, we talk about upgrading our apps to Phoenix 1.7.0 and what the experience...
New
brainlid
In episode 71 of Thinking Elixir, we catch up with German Velasco then talk about the 7-GUI Tasks online challenge and how he wanted to s...
New
brainlid
Episode 185 of Thinking Elixir. Dive into the world of structured LLM prompting with our latest guest who shares insights on their innova...
New
brainlid
In episode 67 of Thinking Elixir, we talk about ways we can all contribute to building a healthy Elixir community. The Elixir community i...
New
brainlid
In episode 56 of Thinking Elixir, Kurt Mackey, founder at Fly.io talks about what makes the Fly platform unique and why hosting Elixir ap...
New
wolf4earth
Tej Pochiraju joins the mix to discuss Progressive Web Apps and how you can support them using Elixir and Phoenix to control IoT devices....
New
brainlid
In episode 95 of Thinking Elixir, we talk with Philip Sampaio to understand the Rustler Precompiled project he created and what problem i...
New
brainlid
In episode 98 of Thinking Elixir, Dominic Letz did something I thought was impossible. He got an Elixir application packaged up, approved...
New
thiagomajesk
I saw this podcast episode on my Twitter timeline today and wanted to share it with you. I found a lot of valuable lessons packed in a 27...
New
brainlid
AI topics are all the rage right now, so we team up with Sean Moriarity to unpack what’s going on and what it means for Elixir. Sean talk...
New

Other popular topics Top

WestKeys
Currently suffering from paralysis by [HTTP client] analysis. This is rather unusual in Elixirland as there tends to be consensus on the ...
New
mcarvalho
What is the difference between System.get_env and Application.get_env? For example, what are best practices to use one versus another.
New
Nvim
Anybody knows a comprehensive comparison of Django and Phoenix, thanks for the help. Where are they similar? Where do they differ the m...
New
lessless
I believe there are people here who are dealing with CSV files import on the daily basis, and since Excel is a really popular tool there ...
New
ovidiubadita
Hey all, I discovered Elixir and I love it. I always wanted to learn a functional programming and I intended to go for Haskell, but afte...
New
freewebwithme
Using vs code and installed ElixirLS: support and debugger. And I got an error popped up on start up says Failed to run ‘elixir’ comma...
New
Emily
I have VueJS GUIs with the project generated using Webpack. I have Elixir modules that will need to be used by the VueJS GUIs. I forese...
New
nobody
Hi! In PHP: $_SERVER[‘SERVER_ADDR’] - in Elixir? Searched the docs for ip address and the web, no good results. Thanks!
New
AstonJ
We’ve put together this wiki for Phoenix LiveView - please feel free to add any info you feel is worth including. What is Phoenix LiveV...
New
hariharasudhan94
I would like to know what is the best IDE for elixir development?
New

Latest on Elixir Forum

Elixir Forum

We're in Beta

About us Mission Statement