In the beginning of 2019 we published the article comparing Ruby on Rails and Elixir/Phoenix software development. Over a year and a half later, I decided to bring this popular topic up once more, focusing mainly on the business aspects of each platform. I will ask you a few questions that will help you decide which framework will be the best for your next project.
Phoenix or Rails. Which is better for your business?
What is your project about?
Ruby on Rails is a great tool for creating classic CRUD (from create, read, update, delete operations on data) websites, as well as building domain projects which don’t require a lot of internal communication between users and events in the system. Examples of such applications are: Twitter, Urban Dictionary, Groupon - all of these websites were originally written in Rails.
Phoenix focuses on providing a broader stack for developers. It allows us to create websites leveraging concurrency, internal messaging and event processing. This makes Elixir/Phoenix a great choice for handling high traffic as well as supporting growth. A good example of an app that could leverage Phoenix is the event-driven application Uber. It handles a lot of data traffic between the driver and the user, as well as behaviour changes upon completing certain milestones (picking up, reaching the goal).
What is the size of your project?
Ruby on Rails development excels in creating working prototypes, MVPs and fully functional, yet relatively small platforms. Coming with many gems (libraries) that allow developers to focus on business logic instead of implementing functionalities from scratch, Ruby on Rails is a solid option for your small-to-medium size project.
9 years after Elixir's version 1.0 was released and 5 years from Phoenix’s version 1.0 release, the development environment for Elixir web applications became more mature and friendly. During that time developers published tools and libraries for Elixir and its core team extended the language with a built-in release tool. That allows us to use Elixir for small and medium scale projects as an option that is almost as good as Rails.
However due to the fact that Elixir is based on a robust Erlang platform battle-proven in telecom environment, Phoenix will be a safer bet than Rails.
Read about companies that use Elixir.
What about maintenance?
Ruby on Rails may require plenty of optimizations and refactors after your application became a home run. As stated before, Ruby is not the perfect choice for a large-scale application.
Learn more about managing technical debt in software projects.
This can often lead to a need for extra development time allocated towards maintenance and making your application run smoother.
A good Elixir application written with scaling in mind doesn’t have this problem. The OTP platform can be used from day one and some commonly used tools are easy to scale. The ability to use concurrency as a part of day-to-day programming can make Elixir application more future-proof, thus saving you a lot of stress and money.
Are you open to new solutions?
If you are seeking a mature technology, with a ready solution (library) to pretty much any common programming problem or functionality, Ruby on Rails with its abundance of gems is probably what you are looking for.
The framework has been in use since 2004 and has a stable worldwide community of contributors. In 2020, it is over 4,000 and still counting.
Phoenix is over a decade younger and has circa 900 contributors on GitHub. It may seem humble and a bit overshadowed by other technologies, but such popular services as Moz, Discord, Bleacher Report and, most recently, PepsiCo eCommerce are already using Elixir/Phoenix. Can there be a greater validation?
What are your funds?
Because of the difference in both frameworks’ maturity and availability of reusable libraries, the development time of Phoenix software usually takes longer than that of a Rails application. This leads to higher spendings on an Elixir/Phoenix project.
Remember, though, that Phoenix was created with high-traffic services in mind that should compensate for the money spent in the initial phase of a system’s creation.
If your budget is tight and app’s functionalities more standard - think about giving Rails a go.
You can always get in touch with a software development company like Prograils that excels at both technologies and get advice.
Wrapping up: Phoenix vs Rails
Ruby on Rails and Phoenix are frameworks that work fine in their own fields, determined by an application’s size, functionalities, as well as budget and willingness to either bet on an established technology which has its bottlenecks, or to invest in a younger one designed with scalability and concurrency in mind.
Compared to Rails, Phoenix is still a young technology, with a smaller worldwide community. On the other hand, the fact that companies like Moz, Bleacher Report, Discord and PepsiCo eCommerce trusted Elixir’s framework speaks for itself.
As a framework written with scaling in mind, Phoenix does not require many optimizations, simply taking the advantage of Erlang’s OTP toolset. More maintenance work will be required when your Ruby on Rails project grows.
Wondering which framework will click better with your application? Get in touch with us.
Co-authored by Cyprian Łakomy