Re:Elixir v1.1.0 Released
by weatherlight on Friday September 25, 2015 @11:19AM
(#10278634)
Elixir helps manage complexity by encouraging the structuring of code in terms of series of transformations on data. This makes code simpler, more readable, easier to read, reason about and maintain. It also helps avoid whole classes of complex bugs and problems that inevitable creep into large codebases of Java, Python or Ruby code.
[ Parent
| on HN ]
> It also helps avoid whole classes of complex bugs
Whole "classes" indeed.
Especially for Ruby devs who are fed up dealing with concurrency and performance problems in Rails, Elixir is very attractive and will make you code in a different way.
So what differentiates it from Clojure or Racket then (which are ostensibly more interested in transformations on data)?
The concurrency model. I recommend Rich Hickey's talk "the language of the system" (ironic, I know). In erlang/elixir you use the same kinds of abstractions to design your fine-grained logic and you coarse services. This makes for a very unique approach to scaling.
I'll have to check that out. Thanks for the reference
Elixir (probably due to the Erlang roots) seems to actively make it hard for you to hold onto state. This ends up (in my experience) being a good thing... or at least a brain-stretching thing that may lead to fewer bugs on larger projects.
Clojure allows some OO if you'd like. I see that as a drawback, personally, but I've drank the functional koolaid.