cdelsolar 1 day ago

Why did you "scroll past" the Go solutions? Types, man, types. Elixir has no types. Ergo, I can't use it.

3
hibbitybibbity 22 hours ago

I thought I would miss static typing more than I do. Elixir's pattern matching is actually extremely powerful in its own right.

dragonwriter 1 day ago

> Types, man, types. Elixir has no types.

Elixir (and BEAM more generally) has Dialyzer, which does static analysis including (but not limited to) type checking.

mtndew4brkfst 1 day ago

Dialyzer is easy to intentionally or accidentally mislead, so it's only as good as the quality of human-authored typespecs (which are sometimes absent from major mainstream Hex packages) and the inference is simultaneously more open-ended and unhelpfully precise than most people are accustomed to if they have prior experience with something like Rust or TypeScript. People also frequently struggle to accurately interpret its output.

I still find dialyzer to have non-zero value, but it's not uncontroversial and it's not usefully integrated with the vanilla language tooling. Mix/elixirc is not generally going to throw you a bone if you violated a syntax-correct type spec. It's an opt-in secondary tool and that diminishes its utility a tad.

te_chris 1 day ago

Also the language is strongly typed and has a compiler which they’re adding more compile-time type checks to.

pton_xd 1 day ago

> Elixir has no types.

Elixir is strongly typed. I think you mean it is not statically typed.

mtndew4brkfst 1 day ago

Making this point in typed vs untyped debates about Elixir/Erlang specifically has never once lead to either an educational moment or a change of opinion on either side. You know exactly what they meant by that, and you're using a different definition than they are to try to pull a pedantic gotcha. It's snide and unproductive.