Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I came to Elixir from Scala, and for me the dynamic typing is a big step forward, because now I don't have to deal with the half of the Scala community that tries to make Scala into Haskell.

Between Dialyzer (a static analyzer that finds type errors) and runtime pattern-matching (extremely powerful destructuring, sort of borrowed from Prolog initially), I don't find myself wanting to go back to strong typing on the JVM.



I'm currently working with Scala and recently dabbling with Elixir and Phoenix. It's a good language and great platform, however, I still prefer static typing.

I'm still getting used to dynamic typing in Elixir. Most of the time I feel like just matching against Map data structure or records.

While Dialyzer is great, writing the typespecs is a bit of a maintenance overhead. I suppose it's a tradeoff...

> I came to Elixir from Scala, [..] now I don't have to deal with the half of the Scala community that tries to make Scala into Haskell.

IMO Scala will continue to be a multi-paradigm lang. On pure-FP and libs, it's a choice and really depends on the problem domain. It might not be a good solution to everyone, but I'm glad it exists.


I think of Elixir typespecs as documentation more than as overhead. Given that I'm writing comments that tell the shape of the inputs and outputs of every function anyhow, I might as well do it in a way that lends itself to static analysis. :)


> because now I don't have to deal with the half of the Scala community that tries to make Scala into Haskell

side-effecting shots fired!


Oh, screw side-effects -- Elixir is much more hardline about immutability than Scala. I'm talking about jamming half your program logic into the type system, then braying to anyone who stays still long enough about how that's the right way to do things.


Holy hell, you just described my daily problem more than I previously knew.


After dealing with Elixir's no-mutation-possible-anywhere design, I don't want to go back to any language that permits it




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: