Which framework to use?
I am looking for a framework for a Java web app that I am creating, I just don’t know which one to go with. Here are my requirements:
- It must be easy to learn and easy to implement—I don’t want to still be learning this thing five months from now
- It must be a well established framework with good community support—I don’t want to pick some obscure one that will be abandoned in 3 months
- It must have excellent documentation with real world “Hello World” examples that make it very easy to get up to speed with using it
- It must integrate with Hibernate as that is what I am using for my backend, database layer
- It should look good when placed on a resume—This directly relates with the second point
Here are my current choices in order: Tapestry, Spring MVC, Wicket, Struts. Anyone have any other suggestions or thoughts?
Well, since I am one of the developers of Wicket, I am baised. But, I would really argue that you pick a component based framework. The ‘Model2′ frameworks (like Spring MVC, Struts or - another I was/am active on, Maverick) work fine for sites with not-too complex interfaces. But when you start to build larget, more complex interfaces, you’ll end up in a nightmare. I did tons of projects in Struts and Maverick (and some other model 2 stuff), and two in Wicket, and finally, I can add complexity to my pages, without being pulled into a swamp.
So, IMHO you should go with Wicket if 1 and 4 (and 2, as you’ll find the community support really good) weigh heaviest, or with Tapestry or Echo if 2, 3 and 5 weigh the heaviest.
Eelco
I have used Struts in the past and never really liked it. The only reason that it made it to the list was because it seems to be the industry standard when it comes to web frameworks. I think the decision is really between Tapestry and Wicket. Currently I am leaning more towards Tapestry only because it is the more established of the two frameworks. However, I have not really researched either completely so there is lots of room for me to make up my mind.
As for Echo, I have not done any investigation into it so I may add it to my list of things to check out.
Thanks for the comments and sorry for spelling Wicket wrong (this has since been corrected).