What is Elixir?
Looking for an Elixir development agency?
We are well-known as one of the pre-eminent Ruby development agencies in the UK, but never ones to rest on our laurels, we’ve been exploring the benefits of its 'sister' language.
Gaining popularity over the last few years, Elixir (which is behind the Phoenix Framework) is a functional programming language created in 2011 by José Valim, who was part of the core Ruby on Rails team.
Elixir runs on top of a programming language known as Erlang VM (BEAM). It shares the same abstractions for building distributed fault-tolerant applications that are concurrent, and is used to build massively scalable, soft real-time systems that require high availability.
When would we use Elixir over Ruby?
We use Ruby on Rails because it excels at prototyping applications when you consider how fast you can get a site up and ready in production. The ecosystem is large, so there are many libraries that solve problems and save time.
We use Elixir and Phoenix when working with applications that we anticipate will have a large user base. Because it is concurrent, it can be easier to scale than Ruby. It is a compiled language, so it’s likely that we’ll spot bugs earlier, which can help with overall development time.
Elixir and Ruby have similar build tools; ‘mix’ on the Elixir side VS ‘rake’ on the Ruby side. Likewise, ‘Hex’ package manager operates similar to ‘Gems’ with Ruby. The Phoenix Framework is heavily influenced by Ruby on Rails and also uses the MVC (Model, View, Controller) architectural pattern.
Our work with Elixir
A key Elixir project for us was our work with WhiteHat – Euan Blair and Sophie Adelman’s successful tech startup. WhiteHat helps people find the best career-focused apprenticeships available with big companies such as Facebook, Google, Moo, Expedia and Warner Brothers.
We built WhiteHat’s back-end platform using Elixir and Phoenix. Our in-house Elixir team (headed up by Nick Linnell and Ahmet Abdi) architectured and built the Elixir web app, which was a complete rewrite of an older code base. Working on all sides of the application for employer, apprentices and talent managers, we added smart-matching functionality which could assess users’ suitability for apprenticeships by asking a few simple questions. We also implemented metrics so that talent managers could see how many people were going through the different stages of the application — great for progress reports and month-to-month statistics.
Other companies using Elixir in production
- Discord is a free voice and text chat for gamers. They used Elixir to scale up to 5,000,000 concurrent users and millions of events per second.
- Findmypast makes original historical documents available to search online, so that people can explore a collection of over two billion records find their ancestors and trace their family tree from the comfort of their own home, worldwide.
- Pinterest is using Elixir for its notification system to deliver 14,000 notifications per second. The notification system runs across 15 servers, whereas the old system, written in Java, ran on 30. The new code is about one-tenth of the size of the old code.
If you have a project in mind and you think that Elixir could work for you (or maybe Ruby, because of course we love that too), then get in touch.