Elixir leverages the power of the Erlang Virtual Machine (BEAM) to enable building distributed and fault-tolerant applications. Erlang is the technology behind apps that have scaled up to billions of users such as Whatsapp, Facebook or Pinterest.
In a world where CPUs have multiple cores, it's essential to be able to run software concurrently, so that we can use the maximum computing power while keeping costs low. In contrast to other languages such as Ruby, PHP or Python, Elixir takes advantage of all the cores in a CPU by default. As developers, with Elixir we don't need to adopt weird patterns to build concurrent software.
Elixir is a functional dynamic language, where all data is immutable. This enforces the separation of responsibilities within the app, increasing its maintainability.
Phoenix Framework is the de facto MVC framework for creating web apps and APIs with Elixir. It embraces many of the principles that made Ruby on Rails world famous, while adding new powerful abstractions to build rich real-time applications. With Phoenix you can easily keep a real-time and bi-directional data channel with every user all the time (WebSockets) – this unlocks a new generation of web apps.