Elixir: Modern Programming for the Erlang VMΒΆ

Authors:Jose Valim
Time:4:30 pm - 5:10 pm

Why Elixir? First, the Erlang virtual machine is great, so Elixir attempts to expose the great parts of that VM in a different way, while addressing some of the shortcomings of the host language. The Erlang VM was built for concurrency and for hot deployment of updates. Second, multi-core is here to stay. Erlang was built for concurrency, and a lot of the features that make it great at that also make it great at supporting multi-core hardware.

The goals of Elixir are:

  • Productivity

    Elixir attempts to increase productivity by eliminating boilerplate code. Everything in Elixir is an expression, which makes the model more flexible. Elixir also supports macros. The combination of the two features means that domain specific languages (DSLs) are easy to develop in Elixir. [Shows example of a test case DSL.] Macros also support pattern matching.

  • Extensibility

    Elixir’s goal of extensibility is a direct critique of Erlang. This is accomplished through the use of Protocols.

  • Compatibility

    Being compatible with existing Erlang tooling is an explicit goal of Elixir. There is no conversion cost for calling Erlang from Elixir and vice-versa.

    Elixir works out of the box with existing code like OTP.

Project Versions

Previous topic

Grace: an open source educational OO language

Next topic

Visi: Cultured and Distributed

This Page