Ruby on Rails vs Django vs Laravel: Popularity
Popularity comparison of the big 3 productivity-focused MV* backend frameworks. PHP's Laravel, Python's Django and Ruby's Ruby on Rails.
Disclaimer
My web dev career is basically based on Laravel. Starting from v4.2 back in 2014 to my current job where we use 5.7 I've used Laravel at every job/gig I did. I've never dug into either RoR or Django beyond following a quick tutorial. So my views can be biased and my Laravel information is probably more accurate.
That being said, it's hard to accurately measure the popularity of various frameworks for a number of reasons. For example, RoR was initially released 14 years ago in 2004 , Django 13 years ago in 2005 while Laravel came out 7 years ago in 2011 .
Due to RoR and Django being a decade older, there probably isn't as many new StackOverflow questions for example. And there are probably tons of legacy projects based on them.
StackOverflow trends
StackOverflow trends show a clear decline for a long-time champion RoR. Django has been holding steadily for close to a decade. It picked up a bit in 2017, which can likely be attributed to the release of Django 2 in December 2017. Laravel, however, has seen steady growth since 2013, when v4 was released - the first version that saw some wider adoption.
As of now, Django and Laravel are very very close together with Rails being left behind.
Google trends
Google trends shows a similar graph. RoR on the decline, Django steadily holding it's place and Laravel on a rise, surpassing both RoR and Django in recent years, starting early 2017.
Django's has a huge spike around December 2012, when Tarantino's Django Unchained movie was released.
The fact that Django gets recognized as "Web framework", Ruby on Rails as "Software", but Laravel is a "Topic" also doesn't provide me with a lot of confidence in its accuracy. However, the chart is reasonably well aligned with StackOverflow trends.
Interestingly enough, scoping the trends to "Software" category provides a graph where Laravel reached popularity neither RoR nor Django ever had.
On the other hand, scoping it to US only shows Laravel way below the 2 competitors.
Scoping to both "Software" and US only - again, maybe unsurprisingly, shows a graph aligned with StackOverflow trends.
Github stats
I don't think any of those stats are a particulary good way to measure popularity. Stars maybe.
Github links:
rails/rails | django/django | laravel/framework
Stats are taken from the above links, with the exception of Laravel's stars, which are taken from laravel/laravel , which has about 3x the stars laravel/framework has.
MV* framework | # Stars | # Contributors | # Commits | # Releases |
---|---|---|---|---|
Ruby on Rails | 41,742 | 3,723 | 71,320 | 354 |
Django | 38,601 | 1,683 | 26,453 | 202 |
Laravel | 48,187 | 1,864 | 22,817 | 377 |
Make of it what you want.
Personal views
If I started my web dev career today
I would go with Django.
Laravel has one of the best documentations I've ever come across. It has an extremely active and relatively supportive community, some of the best video tutorials on Laracasts and is a very very well built framework that mostly lets you design beautiful software if you aim to do so. Which is a first timer in PHP world!
It's still PHP though. And PHP is not the most beautiful language out there. It has a really bad legacy to bare with ugly, hard to remember and often straight up dumb core library. It has since improved in lots of aspects, but the legacy is still there.
It has proven to be difficult to find a non-junior position in another backend language for me since PHP is looked down upon and PHP developers are (not entirely baseless) considered bad.
Ruby developers, on the other hand, enjoy a great reputation. I've read numerous articles in my career where people praise the Ruby community for their good understanding of important programming concepts. I've never dug into it deeply so this might be purely anecdotal.
I wouldn't pick Rails just because it's slowly dying. The whole language seems to depend on Rails a bit too much. And Rails is slowly losing its popularity.
Python is a decent language. Not my favourite, but decent. And Django has stood the test of time and doesn't seem to be dying in any way. It seems like a very solid pick for anyone starting out. And knowing Python well also makes it easier to pivot into some non-web development jobs as it's used in many different applications.
Conclusion
Laravel is taking over in popularity. Maybe not that surprising since there are probably many more PHP web developers than there are Django or Ruby web developers.
And, as a PHP dev, I'm nothing but thankful for it! It lets you produce MVPs fast, write quality, maintainable code, makes use of a powerful IoC container (in addition to providing a great testing library) for super easy testing. PHP definitely needed that.
Vue js
As an anecdotal tribute to Laravel's popularity, the Laravel community kickstarted the Vue popularity .