I think people underestimate how powerful a tool strong types can be. If you make illegal states impossible in the type system you get a class of tests effectively enforced by the compiler.<p><a href="https://fsharpforfunandprofit.com/posts/designing-with-types-making-illegal-states-unrepresentable/" rel="nofollow">https://fsharpforfunandprofit.com/posts/designing-with-types...</a><p><a href="https://khalilstemmler.com/articles/typescript-domain-driven-design/make-illegal-states-unrepresentable/" rel="nofollow">https://khalilstemmler.com/articles/typescript-domain-driven...</a><p><a href="https://erszcz.medium.com/make-illegal-states-unrepresentable-but-how-the-typestate-pattern-in-erlang-16b37b090d9d" rel="nofollow">https://erszcz.medium.com/make-illegal-states-unrepresentabl...</a>
> "At this point in time, it seems the overall community would prefer a system that flags more potential bugs, even if it means more false positives."<p>I'm not sure this is true. While people who want static types are vocal about it , those who are happy with Elixir's current balance of dynamic typing with help from guards and pattern matching are generally quieter since they're well served by the language. At least of the Elixir devs I know, the overwhelming majority are not looking for a typed language. On the contrary, many of them moved to Elixir <i>from</i> Java or TypeScript because they didn't like the rigidity.<p>It's primarily people who haven't ever really used Elixir or Erlang for significant work that make the most noise about "needing" static types. There are some exceptions, but for the most part this is the dynamic I've seen.
> so we should not expect any meaningful performance gain from typing Elixir code<p>but<p>> The Erlang compiler already does so to improve performance within a single module and we want to eventually do so across modules and applications too.<p>A bit confused by this. Will Elixir potentially embed types in BEAM files like Erlang increasingly does to inform the JIT, or not?
I write PHP and being able to give the arguments a type is such a nice thing, especially for self-documentation - hopefully this brings similar things to elixir, I really want to work with the language.<p>Besides that I wish for a really good LSP or other way to integrate to IDEs, especially to be able to jump to functions and see how they work exactly.
I’m just gonna say this - Elixir flat out does not need strong typing. People who think it does, need to learn how to use structs, guards & change sets properly. 99.9% of the time we are interested in “Accounts” or “widgets”, if it’s important enough to be in your domain model you can spend 2 minutes creating a struct for it, boom no need of types. I realize some very smart people work on Gleam and such, and I don’t really want to claim I know more than them, but seriously I think if you find yourself reaching for types in Elixir you just don’t grok that it’s a high-level language and types will only get in the way! Stop thinking like a C/python/JS programmer, start thinking like a prolog/lisp programmer!! We want to get <i>away</i> from worrying about ints vs floats and deal with high-level constructs that match our domain model, NOT regress into strict typing.