Matt Raible has been presenting java web frameworks(Ruby is included) comparisons since 2007. Last presentation was at JFokus 2012. His presentations have been highly criticized due to the lack of objectivity. He says it is his opinion. It is important to remember that comparing web frameworks is still not a established discipline and neutrality has not been reached yet. Nevertheless, I found his speech quite interesting and worth to be listened. You can do it at parleys.com. It is a 45 minutes speech.
The frameworks which were compared are:
- Struts 2
- Spring MVC
- JSF 2
Remarkable points about his speech :
- There is no best framework, just a lot of awesome choices.
- Modern web development principles
- His matrix:
His presentation contains a matrix for comparing different web frameworks. The matrix has a row per each parameter defined. Every web framework has a grade for each parameter and every parameter is weighted. The numbers in the matrix are just his opinion and the criteria for choosing them is far away from being scientific or precise. Mainly there are 0 if it does not have this characteristic at all, 0.5 if it has it at some level and 1 if it is fully satisfied.
Nevertheless, the matrix is a useful tool. You have already a set of parameters to grade and weigh them. I wrote the matrix in a Calc sheet, you can use it to play with it.
I missed Python and PHP frameworks in his comparison. PHP is widely used and Python is used by high traffic sites(I will write about this soon), therefore, I think their frameworks are valuable to compare.
Based on Matt Raible’s opinion, the winners are Grails, Spring, Rails and GWT.
Best agile web frameworks based on Raible matrix
I have adapted Raible’s matrix weights to look for high productivity frameworks.
- Developer perception(2): Better perception probably means easier learning curve.
- Learning curve(3): If you are going to learn the technology it really matters.
- Developer availability (2): A technology which is not used is not interesting to be evaluated for this project.
- Job Trends(0): It can be important for a developer, but it is not important for this project.
- Components(2): Reusable components accelerate development.
- Testing(2): Tools for testing allow to find errors faster.
- Quality of Documentation/Tutorial(2) : Better documentation, faster learning.
If you miss the explanation of any parameters, let me know and I will tell you. Winners are Rails, Grails and GWT. It is important to notice that Grails and Rails were compared in the Villamor’s article, they were considered as agile web frameworks and Rails won over Grails too. Unfortunately, Trails and Roma frameworks are not in this comparison.
Thanks for reading. Comments, criticism and sharing will be appreciated.