Elixir is a functional, concurrent, high-level general-purpose programming language that runs on the BEAM virtual machine, which is also used to implement the Erlang programming language. Elixir builds on top of Erlang and shares the same abstractions for building distributed, fault-tolerant applications. Elixir also provides tooling and an extensible design. The latter is supported by compile-time metaprogramming with macros and polymorphism via protocols.

The community organizes yearly events in the United States, Europe, and Japan, as well as minor local events and conferences.

History

José Valim created the Elixir programming language as a research and development project at Plataformatec. His goals were to enable higher extensibility and productivity in the Erlang VM while maintaining compatibility with Erlang's ecosystem.

Elixir is aimed at large-scale sites and apps. It uses features of Ruby, Erlang, and Clojure to develop a high-concurrency and low-latency language. It was designed to handle large data volumes. Elixir is also used in telecommunications, e-commerce, and finance.

In 2021, the Numerical Elixir effort was announced with the goal of bringing machine learning, neural networks, GPU compilation, data processing, and computational notebooks to the Elixir ecosystem.

Features

Examples

The following examples can be run in an iex shell or saved in a file and run from the command line by typing elixir <filename>.

Classic Hello world example:

Pipe operator:

Pattern matching (a.k.a. destructuring):

Pattern matching with multiple clauses:

List comprehension:

Asynchronously reading files with streams:

Multiple function bodies with guards:

Relational databases with the Ecto library:

Sequentially spawning a thousand processes:

Asynchronously performing a task:

[citation needed]

See also

Further reading

  • Simon St. Laurent; J. Eisenberg (22 December 2016). Introducing Elixir: Getting Started in Functional Programming 2nd Edition. O'Reilly Media. ISBN 978-1491956779.
  • Sasa Juric (12 January 2019). Elixir in Action 2nd Edition. Manning Publications. ISBN 978-1617295027.