The JSF propaganda from Sun was ever present throughout JavaOne. There were a few things they were trying hard to promote, and JSF certainly seemed like one of those things. I went into this with an open mind looking for some answers as to what JSF could do for me. I approached these sessions looking for a compelling reason for me to adopt this technology. I didn't find one I'm sad to say. After sitting through all these sessions, the only thing compelling thing they could say was that it was component based. Uhh, yeah, great. Not that there's anything wrong with a component based approach by any means, but surely it has to have something else going for it that would make it a "must have" for my projects, right?
JSF was developed primarily for RAD. The idea was that the tool vendors would provide the capability to build drag-and-drop web interfaces using their IDE's and JSF. I imagine their goal was to try and make application development VB-like in this regards. Yeah, RAD may turn out a usable application in the short term, but it also turns out completely unmaintainable crap code. Of course, this also limits you to the handful of tools that support JSF. But I digress, this isn't meant to be a rant against RAD-tools. When all is said and done, what we get with JSF is basically Swing for Web apps. That's fine for a desktop app, but I have yet to see anything to convince me that this is just as appropriate for a web app.
AJAX was a big buzzword at JavaOne this year. I sat in several sessions that dealt with the topic, most of them given by Sun staff. If you listened to these evangelists talk, you might come away thinking that the only way to do AJAX in Java was to use JSF. Of course, we all know that this isn't the case.
One of the sessions was a "Web Frameworks Smackdown" that pitted representative of JSF (Ed Burns), Tapestry (Howard M. Lewis Shipp), Webwork (Jason Carreira), Wicket (Eeico Hillenious), and Shale (David Geary) against each other in order to promote their frameworks over the others, as well as an extensive Q&A from the audience. I was quite tempted to ask the Sun JSF rep what he thought would prevent JSF going the way of JDO. There are some striking similarities between JSF and JDO in my mind. You only need to look at the forum traffic here at JavaRanch to give you an idea of how the majority of the community seems to feel about JSF as an app framework, particularly when compared to something like Struts.
Initially I always thought that JSF would be good if it just stuck to the UI. Unfortunately, the people at Sun decided that they wanted to make it an application framework as well. From what I can tell, it doesn't seem all that great as an app framework when there are so many real frameworks that do the job so much better. After listening to the non-JSF speakers at the "Web Frameworks Smackdown", I think that it is the other frameworks that will in fact end up saving JSF from itself. Some of the other frameworks, most notably Shale, will be leveraging JSF for what it is good at, as a UI component, while leaving the framework plumbing to more capable frameworks. I think it is this adoption of JSF by Shale that will lead to a greater acceptance of JSF by the community, an acceptance that I quite frankly don't see happening any other way. Relegate JSF to the UI only, let a real framework handle the rest, and JSF might just thrive.
I came out of the Smackdown with the opinion that there was definitely some good stuff out there in the Web App Framework department. Tapestry, which I have heard nothing but good things about, looks outstanding. Webwork and Wicket, aside from having the most entertaining presenters (along with HMLS of course), look like they are both worth learning more about. The thing I'm most excited about though is Shale. I predict that what we will be seeing quite a bit of in the near future are Shale-based web apps leveraging JSF for the UI with the whole thing sitting on top of Spring. Time will tell of course.
[ July 06, 2005: Message edited by: Jason Menard ]