This last weekend I attended the first ever ElixirConf! It was held in Austin Texas and was a fantastic event. I won’t detail each and every presentation as that’s already being done by a number of sources including Elixir Fountain. I do want to describe some of things I found most interesting.
First of all, I was excited to see that there were 105 attendees. This is more than I had expected for such a new language. It’s great that Elixir has already built up such a vibrant community. Also, there were a few people already using Elixir in their jobs which is very encouraging. There seemed to be several large groups of Elixir developers including game developers using Erlang and Elixir for game servers, Enterprise Erlang developers that have been working with Erlang for years, web developers coming from Ruby or Python that are just getting started with Elixir.
All of the talks were fantastic, I learned a lot over the two-day conference. But two topics drew me in the most. The first was the future of Elixir both in terms of features and community and the second, on a more technical note, was designing and structuring OTP systems.
The Future of Elixir
José Valim spoke on the “Past and Future of Elixir” giving first the history of the development and then his thoughts on Elixir’s future. The future looks very exciting and José challenges all of us to help grow the language and pointed out that the macro system can be used to build new language constructs. He gave examples of possible new comprehensions but these are just ideas he has had an he wants all of to build new things that we need and share them with the community to help it grow.
Bruce Tate gave a talk on Fear and how it can both paralyze and motivate new language adoption. He went on to discuss the challenges and strengths Elixir has as a language and community in challenging established languages like Java. The foundation on the Erlang VM and the amazing tooling already build for Elixir (mix, iex, hex, etc.) put us in a good place.
As I’m looking for a new direction to take my career I’m excited by these challenges for Elixir and hope that I can play a part in its advancement.
In terms of OTP design Francesco Cesarini gave a fantastic talk entitled “Thinking in a Highly Concurrent, Mostly-functional Language” in which he described how the high level design used by Erlang Solutions has evolved over time to create higher levels of concurrency and availability. The slides from this presentation were amazing. But most important was the way that Francesco described how to think in concurrent terms to take full advantage of the Erlang virtual machine and the parallelism available in today’s CPUs. I was so inspired by this talk that I immediately purchased a copy of “Designing for Scalability with Erlang/OTP” by Francesco Cesarini and Steve Vinoski.
Martin Schurrer gave a great talk on “Otp In Production: The Nitty-Gritty Details Of Game Servers” which walked through examples of two different OTP systems that he had developed as game servers. One example described a few elegant system for migrating users off of one machine and on to another in order to apply upgrades. It was an amazing use of OTP and the messaging systems within the Erlang machine. Martin was very enthusiastic throughout his talk and you could see how much he really enjoyed being able to build software in this way.
Listening and watching these talks on design really strengthened my desire to learn to build OTP systems. I plan to start reading through Francesco’s book as well as other materials and hope to be able to write more about OTP design on this blog in the future.