So Let’s check out the list of this backend and the year they came into being:
- PHP – Laravel (2011)
- Ruby on Rails (2005)
- Python Django (2005)
- NodeJS with ExpressJS (2010)
Now let’s look at the big companies using these backend technologies:
- Laravel: Absolutely no one is so big here to be mentionable. Laravel is a good choice of mid-level and small level enterprise as it has many features but has a programming language PHP is no one’s favorite language.
- Ruby on Rails: Airbnb, GitHub, BaseCamp, Dribble, Fiverr, Kickstarter, Shopify, SlideShare, Twitch, ZenDesk and what not, Ruby on Rails has always attracted web developer and it was the clear winner a few years back.
- Python Django: Youtube, Dropbox, Google Search, Survey Monkey, Quora, Reddit, Yahoo Maps, Pinterest, Instagram, NASA, BitBucket, and the list is endless. Yes, I am also shocked here seems like the biggest brand on Internet are all here.
- NodeJS: eBay, GoDaddy, LinkedIn, Uber, Groupon, Netflix, Mozilla and Yahoo(some parts). NodeJS also looks impressive with a portfolio of sites which have a huge share of internet traffic on daily basis.
One of the trends is that many of programmers love Python as their first language of coding. Also, Python is versatile and have much more applications than the web development. Python is a major language in data analytics, big data and scientific community, which gives it a huge advantage in terms of integration of various systems.
Here is a video explaining differences between Django and Other frameworks
NodeJS on other hand makes life easy for developer who are only familiar with JS as it caters for both front-end and back-end development. NodeJS is advantageous in the case of high I/O requests as it works in an async event loop. NodeJS itself can’t be called a complete web framework as it’s just an application which compiles JS code. We can add support for ExpressJS or other more complex frameworks like Loopback to have complete web development framework ready. However good NodeJS, lack of good software principles can lead to blunders with a beginner level knowledge. Hence I would rather prefer Django or Rails over NodeJS for a beginner level programmer to learn good coding principles.
You can check out this video from CodeSchool explaining basics of NodeJS and why it is different:
Coming to Rails now, Rails is an absolute gem for the beginner as it has all good software principles are embedded and it is easy to learn. However, there is a lot of magic going on there. Rails have more of convention than configuration – which means Rails is more like a Language (Like English). If you have the correct grammar things start working magically. In other frameworks, you have to do lots of coding configuration beforehand to get started with the project. In Rails, the Rails CLI tool does that for you – Django also has a CLI but Rails has a much better way to put that. But as Ruby is not so much of a popular language people started switching from Rails to other more generic language based frameworks. Have a look at this video which explains – if it is still relevant to learn Ruby on Rails in now (it’s a bit old 2016).
Till now, I have compared the 3 popular backend frameworks and yeah there is still a lot of confusion which one to pick. Finally, we come to PHP – absolute king of server side web development because of the ubiquitous nature. PHP exists everywhere WordPress, Joomla, Drupal are built in PHP and they are CMS behind most of the web. If you know PHP you can work on any of these frameworks. Few programmers complain about how PHP as a programming language is poor – but that what no people talking about. PHP still has huge market share and with Laravel kind of Frameworks, you can create a backend quite easily. However, I will not go with the mass appeal of PHP and would be happy to work on other 3 frameworks. You can check out this video explaining why PHP is still relevant: