This week I was attending Matt Raible’s talk Comparing JVM Web Frameworks at Devoxx 2010. Matt came up with a matrix containing grades for a chosen set of features in various frameworks. The top 5 frameworks in the matrix has been presented in details. Unfortunately Tapestry got 13.5 points, only 1 point behind Wicket/Struts 2 (both 14.5 points).
I have no problems with being behind any framework if the comparison is made accurate. But in this case I feel like I need to defend Tapestry because I disagree with some of the grades given by Matt. The problem is that Matt is very famous and a lot of Java developers believe him blindly. Matt, you should be aware of it and be very careful by making any statements.
I talked to Matt after his presentation and promised him to send some links which will hopefully improve Tapestry’s grades. But Matt’s comparison caused a lot of discussions over the world, so I decided to write a public answer.
Here are some few grades I disagree with:
I cannot understand why Tapestry didn’t get 1 point for developer productivity. C’mon Matt, did you ever hear about Tapestry’s Live Class Reloading feature which allows you to change your code and see the results immediately? You have mentioned that JRebel can boost developer productivity but forgot to mention that Tapestry has a similar functionality which is built-in.
Is Spring MVC really more productive than Tapestry? Is it because JSPs are better to read and to debug than Tapestry’ HTML templates? Or is it XML-based configuration that outweighs Tapestry’s annotation and convention-over-configuration approach?
Uh? Zero? Is it really that bad? Matt, your last mail on Tapestry’s user list was on 11th November 2009. One year is a long time. You should read the comments of new users who are enjoying learning Tapestry.
Indeed, the Tapestry team have been very bad in marketing but it will change. The new web site has been launched yesterday. The documentation has been improved. A German book on Tapestry 5 has been published. Currently I’m working on a translation of this book for Manning Publications Co. I’m pretty sure the “Tapestry 5 in Action” will make Tapestry more successful.
I’m talking on Tapestry very often and get a lot of feedback from Java developers. My impression is that the developer perception is better than zero. Much better.
The first stable release of Tapestry 5, namely version 5.0.18, was released on 12th December, 2008. Since that time we successfully released 18.104.22.168 and 5.2.4 without to break any backward compatibility. Two major releases with various innovations and without any backward compatibility issues in two years. Isn’t it a healthy project? Shouldn’t you all forget the Tapestry’s bad reputation of backward compatibility? It is history now.
One of Tapesry’s goals is scalability. Tapestry was built with scalability in mind and that’s why has a lean session usage. Tapestry claims to be scalable and you should read it in Tapestry’s documentation. Again, why not the best grade for this feature? Why do Struts 2 or GWT scale better? Did you try to scale a Tapestry application? I guess not.
C’mon Matt. Are you kidding? Tapestry is built for testability and provides a very nice testing functionality. I guess this coverage report tells everything.
Moral of the story
There are even more points which are better in Tapestry than they appear to be. If only the mentioned points have been rated accurately, Tapestry would easily make it to the top 5 frameworks in Matt’s presentation.
The moral of the story is: even though Matt Raible is a very respected person, you should not blindly rely on everything he tells you. Some frameworks are much better than some people speak about them. Give them a try and decide if they fit your needs.