Behind every great product stands a long story of very hard but yet right decisions. Right after the question “What should we do?” comes another important question: “How should we do that?”. We’re not able to make this decision for you, because there are so many ways and tools for implementing things that it’s impossible to even know all of them. But we will try to help you just a little and compare two of the available technologies you can use in your next web application: Ruby on Rails and Laravel.
First things first – what are Ruby on Rails and Laravel? Simply put, both of them are well-known web frameworks, widely used in the development of web applications.
But what are web frameworks? Basically, they are libraries of code whose purpose is to help and support faster and easier development and maintenance of web applications. They usually provide some out-of-the-box solutions for popular development tasks, e.g. connecting with a database, user authentication and authorization, or integration with some third-party services like Facebook or Stripe. They also allow the developer to generate huge parts of the code with a few clicks, which may make development in its early stages even easier.
Ruby on Rails is a very popular framework written in Ruby. Its first version was published in 2004 by David Heinemeier Hansson and is currently available in version 5.2.0. Laravel, on the other hand, is much younger, because it was released only in 2011. This PHP-based framework advertises itself as a “framework for Web Artisans” (Artisan is also Laravel’s built-in command line tool) and for people who love beautiful code. It may sound familiar to Rails developers as well, as Ruby is known for its purity and readability.
The Battle of The Giants
Languages in which Rails and Laravel are written – Ruby and PHP – are very popular in web development.
The former, despite its “friendliness”, was widely decried for being slow. Twitter, which was initially developed in Rails, used to experience some performance issues due to processing millions of requests per second. This issue was addressed, and Ruby’s performance increased distinctly between 2004 to 2018, but the label of a slow language has stuck to Rails. But we hate labels, don’t we?
PHP, on the other hand, has existed since the very beginning of the web in the early 1990s. Even though it’s considered to be messy and almost impossible to maintain by developers working in other languages, some of the biggest web applications (does the name “Facebook” ring a bell?) use it.
How many people know how to use it? How hard is it to learn this? Is it well maintained and does it have a helpful community? Those are probably the most important questions to take into consideration while comparing programming languages or frameworks in terms of costs of development.
Ruby is considered a language that’s quite easy to learn, as its syntax seems very similar to English – some parts of the code can almost be read as natural language sentences. PHP seems much harsher – it is considered hard to read and chaotic, especially in comparison with Ruby. On the plus side, PHP is definitely more popular in educational facilities and is seen as less abstract.
It’s hard to decide which framework is more popular as there are plenty of different communities across the entire Internet. One thing is certain, both frameworks have huge helpful communities built around them.
Let’s have a look at some numbers coming from the most popular sources.
According to Google Trends, Laravel quickly became more popular than Rails, which is quite obvious, as there are more PHP developers than Ruby. Rails, on the other hand, has enjoyed a very stable interest, which has decreased onlyslightly over the past five years.
There’s no better place to visit when speaking about communities than Reddit. Let’s have a look at some numbers, then. The subreddit for Laravel has 17400 readers, while the one for Rails has almost 24700. The difference is quite big, but remember that Laravel is twice as young as Rails.
Stack Overflow is the home destination for almost every developer in the world. This is the most popular knowledge market and an oracle for programmers. There’s simply no other place with so many answers to so many problems and questions. The numbers here also speak in Rails’ favour: 292143 questions asked about Rails versus 88024 about Laravel.
Another Brick in the Wall
Usually, programming means building things out of things some other people have already built. You can think of web development as building unique things with bricks. But how many bricks do our frameworks provide?
In the Ruby world, the bricks are called gems (fancy, isn’t it?). Technically, RubyGems is a package manager for Ruby present in the Ruby community almost since the beginning of the language in 2004.
There’s a saying amongst Ruby developers that there probably is a Gem for everything. What’s more surprising, this saying is probably almost entirely true. And if there isn’t a gem for something, it will probably be written sooner or later. There is a gem that provides user authorization or manage user’s roles and abilities in your application, and there is a gem that turns your test’s output into a rainbow.
To give you an idea about the size of this community, let’s have a look at some more numbers. The repository has served over 22 billions downloads of over 143 000 of gems.
Composer and Packagist
When it comes to PHP, for a long time, there was no easy and centralized way of managing libraries and dependencies. The situation changed in 2012 with the release of Composer, a package managing system for PHP. It uses Packagist, The PHP Package Repository. Its statistics are impressive as well: over 183 000 packages installed for more than 8 billions times since April 2012.
Those results, of course, are about libraries for entire programming languages – some of them are versatile, while others can be used only for specific frameworks and tools. We can say one thing for sure - developers working in both frameworks – Ruby on Rails and Laravel – have the sky as the limit when it comes to browsing and using packages.
In our comparison, we still have a draw. Let’s try to summarize our current state of knowledge and find the strongest and weakest sides of each of the frameworks and figure out which will fit your business needs best.
Ruby on Rails
Ruby on Rails is an older but still very modern framework. It has a big and active community and is relatively easy to learn. It provides tools for scaffolding your application and makes development in its early stages quicker. Due to Ruby’s readability, apps developed in Rails are self-documented, which can make the understanding of implementation details much easier for you if you have some technical background. Unfortunately, Ruby is still considered to be a language a little slower than others, so it might not be the best choice for you if you want exceptional performance. The differences are not big, though, and Ruby’s creators promise huge improvements in the third version of the language. Also, not every hosting service supports Rails.
Kickstarter: the most popular crowdfunding service
PHP seems to be a very unfriendly language (in comparison with Ruby), but it definitely is more popular in education and amongst developers. Consequently, it should be easier for you to find someone to work on a PHP project. Laravel also provides a good routing system, which makes developing REST APIs (Application Programming Interfaces) easy. Laravel is worth considering if your application relies only on providing data to some other apps.
Ok, so we’ve gone through quite a lot of information, but we still didn’t answer the question: which framework is better? I’m very sorry to disappoint you but, there’s no definite answer to this question. You can take into consideration many different aspects, and still, after your product is finished, someone will come and say that he could have done it better, faster, or cheaper. If you’re looking for a verified solution, battle-tested in many successful projects, and you’re not a performance freak, Rails probably are the better choice. On the other hand, if you want to give a newer very promising technology a try or just want to have an API, you should consider Laravel. The best way to decide is to become familiar with the use cases for each framework and to speak to developers working with different technologies, ask them questions, and try to learn their point of view and get some estimations for your unique idea.