Oftentimes people are confused when it comes to selecting a web application framework for the project or startup idea they have in mind. There are countless detailed technical comparisons available, but they are practically useless for those without a technical background.
So we’ve decided to take a different approach and use an analogy to compare the various frameworks that are commonly used for building web applications.
Let’s start with agreeing to compare webapps with car models. The only difference here is that car models are typically produced in series (multiple cars of the same kind), and web applications are only one of a kind. Everything else is the same: car models and webapps all have various applications, maximum speed, comfort, bells and whistles, and countless other comparison parameters.
Now let’s assume that the programming languages (e.g., Ruby, Python, PHP, .NET, Java, etc.) that are used to build web applications are just sets of tools – like screwdrivers, wrenches, and any other machinery that might be used for producing cars.
And finally let’s assume that frameworks (e.g. Ruby on Rails, Django, or APS.NET) are types of car manufacturing workshops. You will have to select one of these workshop types when you decide to build a web application or launch a web startup. So let’s not waste time and let’s start comparing.
Ruby on Rails (rubyonrails.org)
Ruby on Rails is a relatively small workshop for building cars using the set of tools bearing the Ruby logo (programming language). In many cases cars built at the Ruby on Rails workshop are assembled with ready-made parts created by other Ruby on Rails workshops and made available to the public. However, when existing parts for a specific application do not exist, or do not match the requirements, Ruby on Rails workshops are fully capable of creating new parts by themselves.
This approach allows Ruby on Rails workshops to produce cars (web applications) customized to clients’ requirements relatively quickly and inexpensively. At the same time, they have the capacity to create custom parts (solutions) when necessary that will accommodate non-standard requirements and be flexible enough to scale the application as requirements grow.
Ruby on Rails will be suitable for most web startups and common web applications. To see the variety of web applications built with Ruby on Rails, visit https://rails-apps.com
Django is another type of car producing workshop (web application framework). This type of workshop uses different tools (Python, not Ruby), however, which is why it’s not possible to start building a car (web application) with Django and continue it using Ruby on Rails.
Django is very similar to Ruby on Rails. Selecting one or the other is more a matter of fashion than function. The nuances are very subtle. It’s worth mentioning, however, that because Ruby on Rails is more popular, the community of Ruby on Rails developers is bigger, and it might be easier to find developers. For a more in-depth comparison between Ruby on Rails and Django visit: http://www.quora.com/Ruby-on-Rails-vs-Django
PHP and PHP frameworks (Symphony, Cake, etc.)
PHP is a programming language (a set of tools for building cars), and in many cases, developers do not use PHP frameworks to build web applications (cars), so comparing PHP with other frameworks (e.g. Ruby on Rails) is not really a comparison of apples to apples.
There are plenty of web application frameworks (car producing workshops) built on top of PHP. A short overview of available frameworks is here: http://mashable.com/2014/04/04/php-frameworks-build-applications/. Each has its own advantages and disadvantages, but since we are only scratching the surface, we are not going to dive deeper and analyze technical differences.
The number of websites built with PHP is overwhelming, but a big chunk of this popularity is caused by three killer Content Management Systems (CMSs) – WordPress, Joomla, and Drupal – and several other popular open source projects (e.g. phpBB – open source forum software), all written in PHP.
You must not confuse Content Management Systems with frameworks. Content Management Systems are cars (as opposed to frameworks, which are places where cars are created). Each site built with a CMS is figuratively speaking an existing car that has been adapted to someone’s needs. You can change its color (graphic design) or fine-tune some bells and whistles (add some minor functionality), but you will not be able to fundamentally change its properties or build new parts. So if you need more than just a publishing platform, CMS is not a good choice.
In summary, PHP is flexible enough for large projects (e.g. Facebook), and because there are plenty of developers, it may be a viable option for smaller corporate websites (especially when you choose to use a CMS built with PHP)
ASP.NET and Java frameworks (e.g. Spring MVC or Stripes)
All of these can be compared with large car producing plants. The process is complex and requires more labor, but it allows you to build cars for any need and any complexity. Traditionally, ASP.NET and Java frameworks are used with large enterprise applications, typically in cases in which an application experiences high loads, subtle nuances in application speed are important, and the client has more time and cash available to invest in software development.
Is there a definite winner? No, we wouldn’t say so. Different applications might have different needs at different stages of their lifecycle. A great example is Twitter, which was first built with Ruby on Rails and then switched to one of the Java frameworks when it hit 200 million users (read more about it here: http://www.quora.com/Why-did-Twitter-switch-to-a-Java-based-front-end-after-successfully-using-Rails-with-200-million-users).
If you are planning to launch a web app and don’t know which web application framework would be best for your needs, send an email to firstname.lastname@example.org and we will gladly assist you.