Elixir builds on top of Erlang to provide distributed, fault-tolerant, soft real-time, non-stop applications but also extends it to support metaprogramming with macros and polymorphism via protocols.
Elixir builds on top of Erlang and shares the same abstractions for building distributed, fault-tolerant applications. The latter supported by compile-time metaprogramming with macros and polymorphism via protocols.