Bob Harner

Boston, MA, USA
 

Reviews and Ratings

Can a web framework be fun?  
5.0
 
written over 12 years ago

About 3 years ago some developers in my shop, including me, had been working with JSF 1.2 for about 18 months and were waiting for 2.0 to come out. Meanwhile, other developers had been using Tapestry 4 for a couple years. Nobody was really thrilled with either, and we were all trying to decide whether JSF 2.0 or Tapestry 5 made the most sense for our future projects, or maybe something else. I was leaning heavily toward JSF for all the usual reasons -- standards, available books, experienced developers, lots of component libraries, etc. -- but I decided I had owed it to the guys I was arguing with to at least learn what Tapestry 5 was like. So I began working my way through the main Tapestry tutorial.

What I found there was a revelation. Tapestry 5 was worlds better than Tapestry 4, and it made JSF 1.2 feel like a broken toy. Tapestry was much easier to learn than expected, and best of all, it actually makes it *fun* to code again. I can't remember developing with JSF *ever* being fun. Live class reloading, Post-Redirect-Get, bookmarkable URLs, clean and simple conventions, easy AJAX, XML-free, with a great built-in IoC layer that makes everything little thing tailorable, the whole thing really comes together nicely.

Meanwhile, in the last 3 years, Tapestry has gotten even better -- but so has JSF. The JSF 2.0 improvements, particularly the inclusion of Facelets (which, by the way, was reportedly inspired by Tapestry 4) and the elimination of most XML configuration, have gone a long way into turning JSF into a *reasonable* choice. But it still isn't fun. And it still feels constrained and contrived, not elegant, not the way Tapestry is. I know lots of people use JSF, and some of them even like JSF, but hardly anybody *loves* it. Hardly anybody *enjoys* it.

Everyone needs to evaluate these frameworks for themselves. If you are just reading bulleted lists of features and trying to make technology decisions bases on the strong opinions you find in web forums then you're just gambling recklessly. Try the out these frameworks and see what fits you and your team the best. Each of them has a simple tutorial or quick-start. Don't cheat yourselves by assuming you can divine the real truth by reading some web site descriptions.

Well, in the end, I liked Tapestry 5 so much that I felt I ought to contribute back -- mostly in the form of documentation improvements at first, and then some patches. And now I have actually become a committer for the project. Hey... you should only spend your personal time on projects that really, truly, deserve it ...right?

Did this review help you? |