Is Elixir the Best of Both Worlds? Why to use it?
What is Elixir, and why is it generating increasing amounts of interest among developers?
Elixir is a newcomer on the programming scene, but it’s gaining traction. Elixir is a functional programming language developed by José Valim and released in 2012. José chose to build Elixir on top of the Erlang Virtual Machine called BEAM to take advantage of Erlang’s ability to handle concurrency. In Erlang, concurrency is clear, and process exchange data is handled through message passing rather than shared variables. These characteristics of the language facilitate complex application development at extremely large scales.
As a Ruby developer, José well understood Ruby’s attractiveness. It’s a fun language to program in, it is very dynamic, and you can quickly develop nearly anything. Also, you can write and read code in plain English. However, Ruby struggles with memory and performance; therefore, it becomes a challenge as an application scales.
Cleverly, José designed Elixir to incorporate the best of both worlds. Since the language sits on top of Erlang, it possesses the characteristics that allow applications to scale reliably and stably. However, Elixir’s syntax is a big improvement over the complexity developers encounter in Erlang. In fact, Elixir’s look and feel is similar to that of Ruby, so it’s easy for Ruby developers to learn.
A recent TechDebate in Minsk, Belarus, was dedicated to the discussion of Elixir as an option for Ruby developers. The questions on the minds of most attendees included that of the primary value proposition, language maturity, the Elixir community, embeddability, and adoption feasibility, particularly for smaller companies.
Why Are Developers Considering Elixir?
Many developers struggle with scaling applications built on Ruby on Rails. Ruby is an excellent choice for startups and projects with a lot of changing requirements; however, as an application scales, speed, and overall performance are often problematic. Elixir is an excellent option to replace struggling portions of applications with a more performance-optimized solution.
Just ten years ago, it was hard to imagine that the audience for a startup could explode overnight from a couple of thousand users to tens of millions. Examples like PockemonGo and MSQRD have shown the development community that the problem of rapid growth is possible and can be very painful — options must be at the ready. Elixir is one such option.
Is It a Mature Language and Is There a Developer Community?
While Elixir is undoubtedly a new language, programmers can be comfortable with its level of maturity. The language is stable, there are available libraries, and there is a growing community for both learning and support. While there aren’t enough Elixir developers out there, for now, the number of developers and active projects seems to be in balance.
Additionally, if a development team wants to use Elixir for a large project, they would likely hire Ruby developers and train them to program in Elixir as it is a pretty smooth transition.
Is Adoption Feasible for Small Companies?
Startups are always navigating the delicate balance of time, money, and product quality. Elixir offers stability at scale that Ruby simply cannot provide. Additionally, since the community of Elixir programmers is growing and the syntax of the language is quite similar to that of Ruby, Ruby developers can quickly learn the language. The time investment required to begin incorporating Elixir is not prohibitive, and the performance benefits that can be achieved are well worth the consideration.
Is Elixir Embeddable?
As the IoT continues to grow, developers are looking for languages that are capable of delivering scripting to remote devices. Erlang was developed for the telecommunications industry for the express purpose of managing large amounts of concurrent data. Elixir takes full advantage of these origins making it an ideal language for programming highly distributed devices.
Sphere Software (https://www.sphereinc.com) hosts TechDebates around the world to discuss a wide range of issues important to the global technology sector. Sphere’s developers particularly enjoy talking about new languages and technologies that are fueling the innovations making the previously unimaginable reality.