Monday, July 19, 2010

Comparing Grails and Tapestry

Hi,
Was going through some details of Tapestry to findout whats good/bad in it. Currently I am working with Grails based application for almost 1.5 Yrs. But believe me I would try to be very unbiased during this comparision.

Note: All the comments are my based on my personal likes and dislikes, so please excuse if you think otherway round ;). Your comments are welcome if you want to correct me or share your own experiences.

Basically Tapestry and Grails both are frameworks which gives you Convention Over Configuration platform where you can focus on your problem domain rather then settingup the environements for developement like Spring & Spring MVC configuration, Hibernate configuation etc.
But following are reasons why I still prefer Grails over Tapestry:

1. Tapestry is focused on UI development with Model based architecture in mind. Even though it says minimum configuration and more over convention, but didn't like the way we hare binding UI with backend as shown at http://joshuajava.wordpress.com/2008/09/11/a-glimpse-of-wicket-14-and-tapestry-5/ when we compare it with GRAILS. I feel GRAILS is much more mature in many ways.
a. We will still have to manage all the Hibernate Mappings (annotations) by hand. Though we do it in GRAILS in GORM way, but somehow GORM ways makes it look much readable and maintainable.

3. Code in Tapestry still looks much more Verbose than in Grails. I mean we have to write relatively bigger code than in Grails.

4. I feels there are just ample of Grails plugin there are reusable components compared to whats are available for Tapestry based apps.

5. Environment based application behavior support in Grails is just too good to have it. Grails support to create custom environment as well that too without doing complex coding.

6. Its just too easy to write JSP taglib and template based apps which also changes relatively frequently in Grails and it can be use very extensively when you are developing a site which needs pages which gets data from multiple places and you dont want to hardwire your controller with all data.

So basically I am not saying Tapestry is Bad. Its is good when someone is working on old frameworks like Struts/Spring only. But as a developer I would say, one someone starts working on Grails, would not prefer writing code in Tapestry atleast. Grails just so addictive ;) by its design and flexiblility :p