Recs.
Updated
Elixir is a functional, concurrent, general-purpose programming language that runs on the Erlang virtual machine.
SpecsUpdate
Pros
Pro Great concurrency and scaling
Processes in the Erlang VM are lightweight and run across all CPUs. Thread handling is simpler and more intuitive and does not require developers to specifically implement multi-threaded solutions. With multi-core CPUs now mainstream, and octocore not uncommon, this will have a significant effect on performance now, and likely more-so in the future.
Pro Full access to Erlang functions
Elixir which is built on top of Erlang's BEAM can directly use Erlang libraries and code, without any trouble. This gives the developer access to over 30 years of libraries development for Erlang without any penalty and trouble. You can call Erlang functions directly without any overhead.
Cons
Con Some design choices may seem strange
Some design choices could have been a little more appealing, for example: using "do...end" comes natural in Ruby for blocks but Elixir uses them for everything and it looks pretty weird:
Enum.map [1, 2, 3], fn(x) -> x * 2 end
or
receive do
{:hello, msg} -> msg
{:world, msg} -> "won't match"
end