Hacker News new | ask | show | jobs
by HashNuke 4217 days ago
Being able to use all of erlang's inbuilt modules and functions are an advantage. But there's way more to Elixir that just syntax.

1.) Elixir ships with a build tool called Mix. Falls back to use rebar for erlang projects. Mix is awesome and IMHO way more stable that rebar (Had problems with erlang libs shipping diff versions of rebar binaries in the git repo itself).

2.) There's a really good package manager - Hex.pm (developed and maintained by Elixir's co-author Eric)

3.) OTP compliant config.

4.) Pipes ~! This for me has been a very useful feature to decongest my code. I'm not sure what project had pipes first (should we credit F# or Unix shell itself?). Having that feature in Elixir is a boon for me.

Finally about Phoenix:

* More mature that most people think. It has a few features that even rails doesn't have (or even cannot handle in real world scenarios). There's support for "transports", which allows people to use polling or websockets and such if your apps need it.

* Phoenix not having an ORM doesn't make a diff. Elixir's core-team develops and maintains Ecto, which is easy to drop it and start using. Ecto still has a long way to go, but for most apps, it is sufficient.

* Authentication? Very simple to write a plug for that and share it across all Elixir frameworks. AFAIK someone wrote plug for OAuth.

1 comments

>I'm not sure what project had pipes first (should we credit F# or Unix shell itself?)

You'd have to go with unix out of those options, F#'s pipe operator is just flipped function application, and is primarily to make up for the poor type inference F# has. Every functional language has or can easily have a function application operator.