Development

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.

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 releases are announced in the read-only announcements mailing list with a link to the complete CHANGELOG. All security releases will be tagged with “[security]”. Security vulnerabilities should be disclosed to elixir-security@googlegroups.com. Our compatibility and deprecation policies are also documented.

Since v1.0, the language development has become focused to provide a compact and consistent core. 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

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 ecosystem are first proposed to the community in the Elixir mailing list as well as in the “Elixir News” section in the Elixir Forum.

Community members are welcome to propose new features for Elixir. Before submitting a proposal, members are encouraged to gather feedback from around the community in whatever venues seem best. However, in order for a proposal to be considered for inclusion by the Elixir Core team, it must go through the Elixir mailing list. This often includes discussion and refinement of the proposal. The Elixir Core team has the final say on whether a proposal is accepted or rejected. While members are encouraged to gain support from the rest of the community, popularity does not mean that a proposal will be accepted.

To remain focused, Elixir trusts its ecosystem to bring diversity and broaden its use cases. 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.

Welcome!