In this section we outline the language’s past and future development.

Plataformatec, a software consultancy, created Elixir in 2012 as a Research and Development project led by José Valim. Elixir’s goal is to be a productive language for writing maintainable and reliable software.

Elixir runs on top of the Erlang Virtual Machine, which provides a scalable and fault-tolerant foundation. Elixir was designed to leverage this foundation without performance costs and aims to contribute to the wider ecosystem whenever possible.

Elixir’s source code is under the Apache 2 License and is maintained by the Elixir Core team, composed of six members: Aleksei Magusev, Andrea Leopardi, Eric Meadows-Jönsson, James Fish, José Valim, and Michał Muskała. The Elixir team works towards an even understanding of the Elixir codebase across all members so it never depends on a single person. The source code and information for contributors can be found on the language repository.

The language development is open, both in terms of source code and of collaborations. All features and bug fixes planned for the next releases can be found in the issues tracker. Features that may cause a larger impact on the language are first proposed to the community in the Elixir mailing list as well as in the “Elixir News” section in the Elixir Forum.

Elixir v1.0 was released in September 2014 and a new minor version is released every 6 months, around January and July of every year. New Elixir versions are announced on our official blog with a summary of the main changes and a link to the complete CHANGELOG. Our compatibility and deprecation policies are documented.

Since v1.0, the language development has become more focused. We believe there is a limited amount of features a language can provide without hindering its learning and without causing fragmentation in the community. Therefore the Elixir team focuses on language features that:

  1. are necessary for developing the language itself
  2. bring important concepts/features to the community in a way its effect can only be maximized or leveraged by making it part of the language

To remain focused, Elixir trusts its ecosystem to bring diversity and broaden its use cases to a wider audience. Therefore the language was designed to be extensible: the constructs available to build the language are also available for developers to extend the language and bring it to different domains. Projects such as the Phoenix web framework and the Nerves embedded framework are two of such examples.

Elixir also relies on a vibrant community to support its growth. The community is behind the meetups, events, learning resources, open source projects, and more. See the sidebar, the Learning Resources and the Hex Package Manager website for some examples and more information.

The best way to support the language is by getting involved in its community and contributing to the ecosystem.