Content posted here with the permission of the author PJ Hagerty, who is Developer, writer, speaker, musician, and Developer Advocate. He is known to travel the world speaking about programming and the way people think and interact.
Programming languages tend to have trends. Once upon a time, it was COBOL that ruled the world. Then Perl and PHP dominated the landscape as the world moved to the web to meet its needs.
In the early part of the 2000s, a few things happened that created a different kind of space in the world of technology.
First, a web framework called “Rails“ that boosted the notability of a happy little programming language, that had been puttering along since the mid-90’s called Ruby. Rails changed the web game when it arrived, making it easier for people, developers and companies, to build applications ready for the modern world.
A little later, in the twenty-teens, a similar idea began to grow. One of the people who made Rails such a success decided to move in a different direction. Combining the style and philosophy of Ruby and the functional programming style of Erlang, “Elixir” was built. Not long after came a very Rails-like framework, Phoenix.
While these two languages have a good many similarities, their success in the world of technology users, builders of the tools the general public gets to see.
These days, about 15 years after Rails first hit the scene, “Ruby and Rails” is still a prominent programming language. Used often in the startup offices in Silicon Valley and around the world, Ruby on Rails is a great language for getting 80% of the work done in 20% of the time. That last 20% might be your core business logic, which would be what your team was looking to build.
When it comes to web applications, getting your application to market is key. Additionally, Ruby is capable of being used for backend internal tools, mobile applications, and other things. As the market moves further away from the web and more toward mobile, a programming language needs to be aware of this movement to capture the minds of developers.
Elixir, coming along much later, may have missed out on some of the benefits Ruby on Rails experienced. As developers began to pick up on the benefits of functional programming, Elixir was poised to be the next big thing. Some companies even began conversions from Ruby or PHP to Elixir with the hopes of it becoming a powerful player in the market.
Unfortunately for Elixir, even with the help of Phoenix, the concept of pure, single language development, was a thing of the past. Applications need to be built to cover the web, mobile, and any other places where people needed to access tools and toys and whatever developers built. As such developers needed to use a melange of different techniques and languages to continue to deliver what our end users needed and wanted.
Elixir is still a player in the world of open source software. Projects like Nerves, allows for using Elixir in relation to IoT & hardware and give it a life beyond the web. Phoenix continues to be used by certain companies as part of their web solutions. All that is true, yet Elixir still failed to capture the excitement Ruby on Rails was able to capture so long ago.
With the polyglot revolution, developer teams need to have diversified skills. Add to that things like the DevOps movement and you can see why the deck was stacked against Elixir from the start.
Every language has hurdles when it comes to wide-range acceptance and longevity and only time will tell if Elixir will continue to be a player in the open source market as Ruby has continued to be.
In the end, the decision is up to your team on what tool works the best.