[1](https://pragprog.com/book/elixir13/programming-elixir-1-3)
[1](https://pragprog.com/book/elixir13/programming-elixir-1-3)
It's not just a matter of syntax and such but a whole new way of thinking - specifically immutability, functional aspect, using lightweight processes, hot code loading, sane handling of crashes and restart, easy tracing, etc. allow approaching and solving problem in whole new ways that is often a lot more efficient (both performance wise but also operations-wise).
Even if you switch to using other language you'd find yourself trying to apply some of these techniques so it is a useful set of things to learn about.
But agreed, it's still worth the effort to learn as many new languages as possible. It will make you a better programmer.
Haskell and Erlang were particularly eye-opening for me, but Scheme/Clojure was a great entry point into FP.
If I had found an Elixir job I would have taken that as well, most of the harder to grok concepts are pretty much the same between the languages. And I do prefer Erlang I find it simpler so far.
I think practitioners of functional languages get a little preachy when really, exposure to functional languages should just be assumed to be part of the basic training of any engineer. It's a tool and as good as it is for some things, it's absolutely awful for others.
Lots of things.
Functional programming only starts to show its power with types and parametric polymorphism (higher kinds, etc...). Without type annotations, all you get is a watered down, crippled version of what a functional language can achieve.
Second... While I love static typing as much as the next guy, there's definitely value in immutable data in a dynamic language. You also get Dialyzer in Elixir/Erlang, which is an interesting alternative to the usual type systems you find in Haskell/Rust/etc. in that it focusses on finding places where there's provably a problem, rather than where it's not provably correct.
Sure, but there's even more value in immutable data in a statically typed language, because of all the advantages that come with such a language (automated refactoring, better performances, tooling, etc...).
I should know better than to use the word "pure" on the internet, someone will always correct how inaccurate my usage is :)
Can someone suggest a fun project, which can showcase the features of functional programming?
https://pragprog.com/book/elixir14/programming-elixir-1-4
Anyone have any other suggestions on up to date Elixir books?