The complexity of Haskell vs. Elixir's simplicity

Java is not expressive as Ruby at all, while Haskell is one of the most expressive language.

Haskell is not complex at all. It’s just having some initial barrier. Fundamentally it’s simpler than most of the languages.
Once you know how to deal with monad (don’t even need to understand it well), you can write a lot of useful things just like other functional programming languages.
Once you know more about typeclass and monad transformer, you can write beautiful programs.
As for Template etc, it’s not a hard requirement for programming language. And referential transparency makes the need for macro lesser. (Think about the if macro in Elixir tutorial, in Haskell it could be actually implement as a function due to it’s lazy nature)

The great thing of Elixir is not only based on the language itself, but also the platform (Erlang/OTP), great tooling etc.

Compared to Haskell, Erlang/OTP makes Elixir a more practical language. There are some projects like Cloud Haskell could be an alternative to Erlang/OTP in the future, but it’s far less mature right now.

Compared to Erlang itself, Elixir tooling and documentation is far easy to learn and use.

2 Likes