I'm working on a project and I'm trying to decide between JSF and GWT. I have read up on JSF and so far I rather like it, particularly the ways you can build your own components and overwrite renderers. Now I need some Ajax features such as drag and drop and autocomplete. I have looked into richfaces and my impression has been that it seems almost painfully slow (at least that was my impression when looking at their demo). Also, while reading up on Ajax most Ajax books praise DOM manipulation as a way to make Ajax effective. Do I understand this correctly that GWT components are faster because they are mostly client side while JSF is serverside? Does JSF use any DOM manipulation? How do I steer it if I were to write my own component? Is that what subview does?
Things I really like/need about JSF:
Componets (like datalist) are very useful for things such as automatic form generating
And when it comes to thick client vs. thick server my gut instinct is towards thick server because it seems more secure
But things that worry me are:
Claims that GWT is better when it comes to something running in differnt browsers
Speed (wouldn't it make sense if at least some component behavior was handled by DOM manipulation? Or is that the case anyway for components such as collapsible etc)
I have also heard good things about easy to use/flat learning curve
Does GWT by any chance now support some of the JSF things listed above? Should I look into some of the solutions that try to integrate GWT into JSF? Or should I just stick with Richfaces?
(I have read several JSF/GWT comparisons but most of them appear to be fairly old (like 2006) so I'm not sure if things haven't changed a lot in the meantime)
I would like to advise ICEFaces. The link is here: Why ICEFaces
They use technique which called D2D. Rendering occurs into a server-side DOM and only incremental changes to the DOM are delivered to the browser.
They have 55+ components. If you wish you can develop by yourself. I tested my application on both (IE and Firefox) browsers. Looks similar. The Ajax mechanism is build in the components, like partialSubmit.
>>And when it comes to thick client vs. thick server my gut instinct is towards thick server because it seems more secure.
>>I have also heard good things about easy to use/flat learning curve
:-) It depends on the personal experience.
Hope it helps you to make the right decision.
I have seen IceFaces and noticed that it seems to be faster than richfaces. But I can't/don't want to use it because it is based on JSF 1.1 rather than 1.2 and so far I have used 1.2 to write my own componentes (I also like ValueExpression more than ValueBinding) and I can't have both JSF 1 and 2 in the same project, it gives me an error when I try to include both libs.
In fact, I was all set to use IceFaces till I noticed it was incompatible with what I had already written. And it seems like the 1.2 compatible version isn't coming out for a while.
They say: "Improved JSF 1.2 Support. ICEfaces can now be used in JSF 1.2 runtime environments utilizing the JSF 1.2 document schemas for the faces-config.xml and web.xml files when used with Sun JSF 1.2_09 or greater. Previous ICEfaces versions (and 1.8.0 when used with older JSF 1.2 runtimes) require the use of the JSF 1.1 document DTDs (so-called "compatibility mode")."
Wow. I checked Icefaces out barely a month ago and back then the current version I downloaded was 1.7.2; Thanks, I really should have checked with them again. Back then I read that 1.2 would be supported with Icefaces 2.0 and that that wouldn't come out for quite a while.