Web frameworks selected to be compared

{6 Comments}

This article is part of a project which tries to measure the ease of learning and development for several frameworks with a practical experiment. In this article, the selected web frameworks and the reasons for their selection will be presented.

I want to say I would like to have enough time to review more frameworks. Specially, all those component-based frameworks such as GWT or Tapestry, which have a great usage and are growing nowadays. Unfortunately, there is no enough time to compare every framework.

Selected web frameworks

In case you do not want to read the whole article: Web frameworks which have been chosen are:

  1. Ruby on Rails
  2. Grails
  3. Django
  4. Code Igniter

Reasons why they have been selected

Figure 1 shows the most popular frameworks, those which have better characteristics of usage and ease of development. Perl language has been excluded because, despite being a highly used technology, its frameworks are not considered in comparisons. Python has been included although without being named in comparison because it presents a significant use in high traffic sites and Django usage is increasing.

Although there are more frameworks to choose in Ruby and Python frameworks universe, Ruby on Rails and Django are the most widely used. Community focus on one framework is said to be a good characteristic. On the other hand, there are plenty of Java and PHP based frameworks.

Web frameworks map
Figure 1. Web frameworks map

Component-based frameworks are an approach to desktop application development. Their http request abstraction is not accurate for CRUD and classical websites development. A request-based approach is closer to web development and this project will focus on developing a CRUD website. Therefore, component-based frameworks are excluded from the group of web frameworks to choose from.

Request-based web frameworks table
Figure 2. Table of request-based web frameworks

Figure 2 lists request-based frameworks and compares their features. All of them support every feature in some way. The objective of this project is evaluating the ease of development in different frameworks with different based technologies. Therefore, a cross-language set is chosen, one framework of each programming language.

In a previous article, Raible’s matrix was used to modify weights according to priorities in this project. Results showed that Grails and Rails were the request-based framework winners.

Consequently,

  • Ruby on Rails and Django have been chosen due to being the only famous frameworks in these technologies.
  • In PHP, CodeIgniter presents the best performance and it is said to be easier than Symfony, CakePHP and Zend. Yii could be an alternative but, due to its less adoption, CodeIgniter seems the best option.
  • There are so many JVM frameworks that more than one should be in the comparison. Nevertheless, because of time limitation, only one can be chosen. According to the old Villamor article, agile Java web frameworks are Roma, Grails and Trails. Roma was also compared in Wähner article but it is not very popular. On the other hand, Grails is in the second position in the adapted Raible’s matrix and Villamor considered it an agile web framework. Therefore, Grails has been chosen.