Elixir programming language is a dynamic and functional language that runs on the Erlang VM. When programming Elixir apps (as well as Erlang apps), we can use strict calculations, single assignment, and dynamic typing, which was created to maintain split, fault-tolerant, and well-scalable applications with code hot-swapping.
Despite the fact that the Elixir programming language is very similar to Ruby, it also adds a lot of different functionality to it. We believe that in this case we can even speak of the Ruby Elixir or Elixir Ruby mix since these two programming languages are so much complementary.
Here is a list of the most important Elixir’s contributions:
Faster systems Typical RoR applications respond in tens or hundreds of milliseconds to different web requests. However, Elixir apps can respond in microseconds and this can help you handle greater number of requests on the same hardware.
Large applications Elixir has a lot of different built-in tools that allow splitting all the code into chunks. Ruby’s gems can be used for similar things, but there is a critical difference in philosophy behind. The systems, which run on Erlang’s VM, can be split into “applications”. The processes also share no memory. The communication between them is conducted via receiving and sending messages.
Systems with high-availability and true zero-downtime Elixir can help you to maintain 100% up-time while the updates will be still delivered to the production system. The Erlang’s capability to do code hot-swapping makes it possible. If it’s critical that your system be available 24/7, Elixir will help you not to miss a single request.
Asynchronous systems In order to integrate into an external service, there may arise a need to do things asynchronously. RoR apps are not so good at waiting and responding to various asynchronous events. Erlang/OTP can be of greater help instead. It’s much easier to design all kinds of asynchronous systems using Elixir.
Distributed systems Ruby on Rails comes with a distributed processing solution, which is called Distributed Ruby or dRB. It helps to handle the incoming requests in new threads. Erlang and Elixir rely upon message passing rather than sharing state and function calls. This makes it perfect for creating systems, which are fault tolerant and decentralized.
Best quick guide to start working with us.