Elixir v1.20: Now a gradually typed language
cloud8421
672 points
248 comments
June 03, 2026
Related Discussions
Found 5 related stories in 86.2ms across 10,002 title embeddings via pgvector HNSW
- Crystal 1.20.0 Is Released sdogruyol · 15 pts · April 17, 2026 · 53% similar
- Dabbling in Erlang, part 2: A minimal introduction (2013) pasxizeis · 23 pts · May 02, 2026 · 52% similar
- Phel v0.36.0 – Lisp on PHP, now with numeric tower and first-class Vars Chemaclass · 28 pts · May 08, 2026 · 51% similar
- Swift 6.3 ingve · 307 pts · March 26, 2026 · 47% similar
- Show HN: Jido 2.0, Elixir Agent Framework mikehostetler · 262 pts · March 05, 2026 · 47% similar
Discussion Highlights (19 comments)
sevenzero
Oh shit here I go (and learn Elixir for a whole year (again)) again. I love everything about Elixir, but Elixir constantly makes me doubt myself like no other language. My brain isnt made for functional stuff, but this makes me want to try again. Sucks that it's not really a beginner friendly ecosystem and usually, when having questions answered, people assume you already know a lot about the language.
sestep
I've seen various posts about Elixir's gradual type system pop up on HN, but haven't been following too closely. Does anyone know whether this particular gradual type system can change the asymptotics of programs vs untyped code? As far as I'm aware, most gradual type systems (e.g. Racket) can make programs run asymptotically slower, although there are some exceptions [1]. [1] https://doi.org/10.1145/3314221.3314627
ch4s3
This is great, and it looks like 1.20 is compiling our large umbrella app quite a bit faster.
7bit
Found elixir intriguing and so Phoenix. Two reasons I put it aside again are: You need Beam and the Elixir. I find that really weird, because I'm used to just the language like in Python, Java, C, Rust. Not something underneath it, too. There is no debugger. The way to debug Elixir is to print stuff to the console, like 40 years ago. No thanks.
WolfeReader
Wonderful. I know several devs who were turned off of Elixir because of bad experiences with dynamic typing. Hopefully this helps!
satvikpendem
How does it compare to Gleam? Or rather, why use Elixir over Gleam now? I suppose Phoenix and Live View in particular are big draws to Elixir.
mrdoops
It's very nice updating Elixir, having no breaking changes across my many projects and it then the compiler just finds bugs for free. I'm so spoiled.
shevy-java
Guys, I am sorry for your loss here. def example(x) when not is_map_key(x, :foo) I think this also shows that merely copy/pasting ruby's syntax, isn't an automatic win. I noticed this before with crystal, though naturally crystal had types from the get go. Fundamentally: def foo() end should stay simple. And this is no longer the case now. (Ruby also went in error, e. g. "endless methods". I don't understand why programming languages tend to go over the edge in the last 5 years or so.)
misiek08
Im so happy seeing this. We are approaching „great language” level and for me this is the first one. I would be thankful for pointing at any other language that reliably and safely adds great features and is already convenient to use. I jumped from mastering Go to learning advanced C#, because Go stopped with adding great things :(
keithnz
seems ironic that critics were saying, it needs typing, and all the elixir fans were saying you don't need typing, you don't get bugs related to typing because elixir is somehow magic, now they get typing and it finds bugs for them.... but you said you didn't need that to prevent bugs? But good to see! I spent a bunch of time trying out Elixir a while back, I enjoyed it, but just didn't agree with the lack of types.
OtomotO
Yes! I have the great luck to work in many different stacks as a freelancer. One of them is Elixir. While I am on this project for just half a year and not too many hours per week, I can say: I absolutely love this language. It reminds me of Haskell, which I had courses on at university, and is just an absolute joy to work with. My only gripe was that there was no typesystem. So I was eyeing Gleam (as I also like Rust very much), but as Gleam doesn't and probably never will support Ecto and Phoenix (due to it not supporting macros), it's a nogo for the project at hand. I knew Elixir was to gain a typesystem, still this is absolutely fantastic news. Super stocked to work with this.
losvedir
Oooh, here we go! As a professional Elixir developer for... 10-ish years now, I've been super excited about types coming. I'm very excited that the beginnings have started to land here. That said, I would love to know how the state of what's in v1.20 compares to un-spec'ed dialyzer. I was under the impression that dyalizer's "success typing" approach (not flagging a function if there are some combination of parameters such that it works, rather than flagging it if some combination of parameters can make it fail) was like what Elixir is doing here, and I haven't found dialyzer terribly useful.
dzogchen
The past month I have been going through the Elixir exercism.io track https://exercism.org/tracks/elixir It is really excellent!
alprado50
Maybe it is only my experience, but i feel that languages that were not typed since the begining never work as well as "true" typed ones.
hosh
This looks a lot less annoying than Typescript, particularly how dynamic() is a lot more useful than any() I also wonder if this works well with Ruby’s duck-typing and monkeypatching.
bad_haircut72
Im not Jose so I bow to his wisdom but imho thinking about Elixir in types means you arent treating is like a lisp any more, which imho undermines how great Elixir is in the agent of agents this will probably give us a big boost though so thankyou Elixir team
teleforce
Honest question, in the era of vibe and AI assisted coding is there any advantages of using untyped programming languages, apart from the fact that non-typed languages has more traning data for the LLM? This probably controversial, but personally I consider untyped languages as technical debts that need to be fixed sooner or later, and the OP article is partly addressing this very issue. Rewriting critical software infrastructure (infostructure) to more reliable typed languages happened to most of the Ruby on Rails (RoR) software unicorn stacks for examples Twitter, Airbnb and Shopify to name a few [1],[2],[3]. The main reason provided for these migration is transitioning away from monolith architecture, but almost all of the new programming languages being used are typed thus make it obvious that the untyped languages are not performant and difficult to scale even by changing the architecture. [1] Why did Twitter move away from Ruby on Rails? https://www.quora.com/Why-did-Twitter-move-away-from-Ruby-on... [2] How Airbnb Scaled by Moving Away From a Rails Monolith: https://www.reddit.com/r/programming/comments/1756q7z/how_ai... [3] Is Shopify shifting away from Rails? https://news.ycombinator.com/item?id=33409597
yeetosaurusrex
I wanted to use functional programming in actual projects and Elixir's lack of static types almost stopped me from picking it up initially. I tried it out and, although I do miss static types sometimes, immutability and not having to deal with inheritance and other OO abstractions has made the trade-off worth it for me. Yes some people do claim that pattern matching makes up for the lack of static types. I don't agree with that, but can say that anecdotally the number of type related bugs I notice in *my* Elixir code is much lower than the number of similar bugs I used to write in languages like Python. Whether that's because of common usage of pattern matching, or community adherence to patterns like returning tuples of {:ok, result} | {:error, error}, or something else is anyone's guess. An important point not in the heading is that gradual typing has been added without any new language syntax. It's still not statically typed. Maybe it never will be, but this is a step in the right direction and at least they're trying.
groundzeros2015
Every modern language must have every feature. Does this come from GitHub centric development where every proposal is eventually asked for?