Recently released Elixir 1.5 brings many improvements to the developer experience. A first set of improvements aimed to improve the developer experience can be found in IEx, Elixir’s interactive shell, including:
- IEx can now autocomplete variable names and user imports
- IEx has gained a number of new functions, such as
exports/1
, for listing all functions and macros in a module, and breakpoint support when running on Erlang/OTP 20. Specifically, you can usebreak
to set a breakpoint andwhereami
to show the current location once the breakpoint has been hit
Additionally, now Elixir allows:
- to specify in modules how child processes are supervised
- to explicitly mark callbacks using the
@impl
attribute, which increases code readability and helps spotting errors - to use UTF–8 to name atoms, variables, and functions
InfoQ has spoken with Elixir creator José Valim, Elixir creator and maintainer, about Elixir current status.
What is your current involvement in Elixir development?
José Valim: I am involved full-time on Elixir, as part of my job as director of R&D at Plataformatec, the company behind Elixir. But this is far from being an individual effort. The Elixir Team is composed of five developers, including myself, responsible for developing and maintaining the language, and we have had more than 580 community contributors in the language repository throughout the language history.
Could you summarize what drove Elixir development in the last year?
Valim: Elixir is a stable language since we have reached 1.0, back in September 2014. This means our improvements have been incremental and mostly focused around improving the development experience and filling in the gaps found by companies running Elixir in production.
How do you see Elixir adoption in the industry and in open source projects?
Valim: Adoption is always tricky to measure but we can see a consistent and healthy growth in the community and industry. Today we see multiple Elixir conferences in the United States and Europe as well as yearly events showing up in Latin America and Asia. I have just arrived from ElixirConf US 2017, which happened in Bellevue, WA, with 600 attendees. About five times the number of attendees we registered three years ago in the first ElixirConf US.
The growth in the community can also be seen in hex.pm, which is the package manager for Elixir and the Erlang ecosystem. We are close to cross 5000 packages which have already surpassed 120 000 000 downloads in total.
In the industry, frameworks such as Phoenix and Nerves have helped Elixir grow into the web and embedded spaces respectively. Plataformatec also sees an increased interest in consultancy gigs and software development requests from clients running or planning to run Elixir in production. We have distilled many of those experiences in the upcoming Adopting Elixir book, which discusses experiences and tell stories from companies around the world in their journey to adopt Elixir.
In which direction will the language evolve?
Valim: I have recently described in my keynote at ElixirConf US 2017 how the language will continue evolving with productivity, maintainability and reliability in mind. In particular, the next Elixir versions will include a Code Formatter, to unify the code styles used by companies and the community. We are also working on adding property testing principles to Elixir, which will aid developers in writing throughly tested software that is designed with intent.