DEV Community

Discussion on: What language for a corporate transition?

Collapse
 
scorsi profile image
Sylvain Corsini • Edited

Elixir in based on the battle-tested Erlang BEAM VM, to explain without entering in to much details. Erlang was developed for the telecoms by Ericsson because the services must be available at near of 100%, Erlang said they obtained 99.99% but it is much more. Erlang has the « let-it crash » philosophy (check on the web). Erlang has hot-code reloading for free, and this is soooo cool. Erlang has a very big and complete library named OTP and you can do what you want with it, you rarely need libraries. Erlang is developed primarily for concurrences, not like Go does, much more better, communication between processes is very easy, managing processes is very easy thanks to supervisor, ...
Erlang has just one bad point, the syntax is really too old and managing projects is more difficult.

Elixir is so based on Erlang and it comes with internal project manager named mix, unit testing framework ex_unit, documentation ex_doc... and it offers quite the same syntax as Ruby.
Elixir is functional and with its pattern matching is so easy to developed. At the first step, you can be lost cause of that but when you finally understand it’s very cool to use Elixir.

For the notable projects, we have Phoenix which is a very good web framework you can do web app, real time app (thanks to live view), api,... Quixir for heavy tests, Quantum to lunch processes with like a Cron table, Phœnix PubSub to easily communicate between processes, to subscribing from message queue, Ecto which is a very good database manager and ORM-like.

And Erlang/Elixir is used by Facebook, WhatsApp, Pinterest, some US governments website, Discord, Slack and much more...

There is so much more things to say, in a finally note, we started using AWS services and because it costs too much we migrate lot of things into ECS with Elixir apps and we finally reduced the billing for the quite same features and for more monthly uses.