I am a ruby developer but have heard a lot about Elixir in recent past. A lot of devs are shifting from ruby to elixir. I am curious when should I use elixir, what is it a good fit for?
Elixir is great for long running processes/applications where uptime & stability are important. It wouldn't be so great for quick lifecycle tooling type applications since you'd have to wait for the vm (Beam) to start up each time you ran the app.
Elixir runs on Erlang, which was developed to support Telecom systems, meaning systems with lots of concurrent connections happening at the same time, and where uptime is of the upmost importance. When was the last time you picked up a land line phone and it didn't work? It turns out that on the web we're sort of dealing with the same problem. We want our apps to stay up, and serve as many concurrent visitors as possible with little latency as possible.
Since Elixir runs on the Erlang VM, it can also benefit from Erlang's OTP tooling, meaning it can take advantage of supervisors (processes that restart other processes if they fail), versioned releases with hot code reloading for zero downtime updates, as well as a host of other things that web app/services developers find useful!
As Mahabub Islam Prio mentioned, Elixir is a mostly functional language, which I really like. On top of that, it's also a compiled language (compiles into bytecode that runs on Beam) so you would benefit from compile time error checking and optimizations, as well as smart IDE features from your editors. I use VS Code which is mostly a text editor, but because Elixir is compiled, the autocomplete + documentation + jump to definition features work so so well.
Lastly, another thing I realllly enjoy about the Elixir way is documentation/testing as first class citizens, and even has tests that you can write inline with documentation, called DocTests. elixirschool.com/lessons/basics/documentation
Anyhow, I encourage you to at least check it out!
(sorry for the ramble)
Mahabub Islam Prio
Full-Stack Web Developer
elixir is a functional language... you must know that functional programming is better than oop. elixir has ruby like syntax and erlang vm on the core. so now the fact is elixir as a functional language and with the power of erlang vm it is able to work concurrently with huge number of connections.
which is best for large level software in the long run. Yes it is worth a try. After all thus you can become an alchemist.