kostonstyle
Comparing Elixir with Haskell
Hi all
How can I compare haskell with elixir, included tools, webservices, ect.
Thanks
Most Liked
Qqwy
Well, the most important differences:
Haskell is pure, lazy and statically typed.
Elixir is impure, strict (but using macros you can do lazy evaluation) and dynamically typed.
These differences mean that it does take a little getting used to. Dynamic typing + impurity makes it quicker to ‘spin up’ a new concept, but also easier to make trivial mistakes. Elixir’s Actor-Model aspect does mean that programmers spend time thinking about the fault tolerance of their applications, so usually a crash in one part of the program only affects a small part of the application. And also, there exist great tools to write tests. (But still, as someone who comes from, amongst other languages, Haskell myself, I do miss static typing sometimes).
One of the things that you might find lacking in Elixir is that currying is not built in into the language. Also, because the existence of the pipeline operator |>, the most ‘important’ argument of a function is inserted in its first slot (whereas exactly because of currying, in Haskell this would be the last one).
Elixir is built on top of Erlang and uses the Actor-Model for concurrency. This is built in into the language, which means that many system harness its power. There do exist Actor-Model libraries for Haskell, but I have not worked with them so I cannot compare them to Elixir.
From a documentation point of view, I’d say that Elixir’s documentation is a lot better than Haskell’s at this time. Both to get to know the language, and to look a specific feature up down the line. The great documentation quality is also true for most packages built on top of Elixir.
As for packages/included tools: Elixir brings a lot of power, especially since all tools that are built with Erlang also work with Elixir. Building web applications is one thing that Elixir excels at, and the community has spent (and is spending) a lot of time to build tools that extend Elixir’s capabilities in this direction. I would say that Phoenix seems more mature than e.g. Yesod at this time, although I’ve only very little experience with Yesod, so take my opinion with a grain of salt
.
All right, these are just my two cents. Any other questions? 
dwahyudi
A major difference between Haskell and Erlang, that might define their philosophy and goals:
Haskell was born inside the academic mindset.
Erlang was born inside the business mindset.
bobbypriambodo
While it’s not exactly Elixir, but since one of the most compelling feature of Elixir is the Erlang VM and OTP, you might also be interested in this InfoQ interview with Joe Armstrong (co-creator of Erlang) and Simon Peyton Jones (one of Haskell’s lead designer).
Topics including how both languages approach concurrency and how functional paradigms are making their way into mainstream use. Towards the end, they also express their arguments for and against either dynamic typing and static typing. It’s quite an informative watch.







