Java and Technology weblog
The first talk I attended at this year’s JavaOne was “Choosing Your Java Web Framework” by Richard Pack from salesforce.com
Overall, I found this a really interesting talk. It was lacking in any sales pitch, nor did it have the unquestioning devotion to one particular framework that I felt some of the Java FX talks had. Instead it seemed like an unbiased look at web frameworks in general and a handful of frameworks in more detail, based on Richard’s extensive and hands on experience and SalesForce and Hyperic.
Given the abundance of choices, I think it was wise to start with a broad definition of what a web framework is. His definition included something that uses MVP or MVC and provides an event model, resource management, data binding and that is ideally stateless.
He then talked about the evolution that has taken place from server side rendering to client side rendering (where you have a stateless server, with the component model living on the client side), and had a few interesting ‘Architecture Evolution’ diagrams in his slides.
Next, Richard talked about the consequences of ‘choosing poorly’, i.e. picking a framework not best suited to your project’s needs (steep learning curves, excessive boilerplate code, unable to debug templates etc). I got the feeling Richard had learned many of these the hard way. He followed with a set of criteria to help better define your web framework requirements and selection criteria to avoid such issues, including usage scenarios, environment (intranet, mobile) and team competencies. On a side note, he pointed out that using forms for posting had become old hat (and those ‘Are you sure you wish to resend’ popups are certainly annoying).
Then, on to the main event. Richard ran through 4 of the most popular web frameworks: Grails, Tapestry, Wicket and GWT. In each case he compared them using criteria such as AJAX support, friendly URLs, open source license etc. I won’t try to recreate his findings (again, see his slides), but I did come away with a higher opinion of both Tapestry (its Form builder using POJOs sounds particularly cool) and Wicket and I am definitely keen to learn more on GWT (which Salesforce.com use extensively).
In some of the follow up questions, Richard was asked about JSF, which he didn’t have very high opinion of (and he is not alone). I was however disappointed to not hear some info (merits or otherwise) on JavaFX, especially considering its high visibility at this year’s conference, but I also understand no one can know all frameworks.
Finally, he finished with an interesting thought – that one of the main scalability issues with any web framework is people i.e. the competencies and preferences of the developers on the team.
Find Richard’s slides here.