ICEfaces forum is really large, the support team is client oriented and they give a lot of effort into the community field.

 

ICEfaces seems to grow faster, side by side with JSF compared with RichFaces. RichFaces 4 should work better with JSF2 because they gave a lot of effort into this, though it took them a long time to achieve this development release which isn’t a stable one yet.

 

With RichFaces, developers will find themselves writing more JavaScript, a4j and xhtml code, compared with ICEfaces which does all the process'n'refresh automatically through their partial submit mechanism (D2D). There is an issue of flexibility versus simplicity here, but one can still do everything with ICEfaces and write even JavaScript if you really need it. Writing with ICEfaces allows you to focus more on the server side. In ICEfaces the developer doesn't have to think about the partial updates in a page using special AJAX tags, but  should be aware of how it is implemented. The Ajax bridge, D2D, ICEfaces extended request scope, these and more should be always on your mind when developing with ICEfaces. ICEfaces can be heavy and have memory leaks if it isn’t being used correctly. As I see it, yes ICEfaces is simpler for the developers but I would recommend first to learn what ICEfaces does behind the scenes, through tutorials how their Ajax is working and their extended request scope and more...

 

I do encounter some problems with compatibility; ICEfaces still has some bugs in Chrome, Safari or IE8 in some of their components.

 

RichFaces Ajax is a bit more flexible. The ICEfaces partial submit frees you from having a look at what has to be updated and when. One can control the components that are participating in the partial submit but in some occasions you'll need to make some work around.

 

ICEfaces has a pure Ajax Push mechanism through their Ajax Bridge. This is a pure server push and can be a huge advantage for some projects. RichFaces push (<a4j:push>) periodically perform AJAX request to server, to simulate 'push' data.

 

I must say that they are both really high quality frameworks (JSF extensions) and have a lengthy component library. ICEfaces also has a good support in portlets. Beyond that, there are alternatives: GWT, Flex, Wicket, etc...

 

Thanks,

Oded Keren 

 

2

Comments

Just for full discloser I'm the RichFaces Project Lead, so I'm obviously biased ;-)   It seems from the start that you are quite IceFaces biased, while that is fine ( I like IceFaces and the team there as well ) it does not make for the greatest "vs." article.   Just few points:   You open the article with "ICEfaces forum is really large, the support team is client oriented…", since this is an "vs." article I'm wondering if you have compared the community sites for RichFaces [ http://community.jboss.org/en/richfaces ]?  We also have a large, and active user base & forums, and many developers ( in project, and community ) spend a lot of time there answering questions, and contributing.    As for growth with JSF 2.0 both projects have been delayed because of specification and implementation issues with JSF 2.0.  Both projects are in development milestone phases.  IceFaces is in Beta2, and RichFaces is at Milestone 4.     Your comments on writing more JavaScript, and XHTML code with RichFaces would depend on how you are writing your application.  Also in my experience any large scale web application development effort will need to be aware of partial updates, scalability, and "the details".  I think that applies to both projects.   Browser bugs happen ;-)  Always have, and always will…   It is weird you say one sentence like "RichFaces Ajax is a bit more flexible." and then the rest of the paragraph is about IceFaces.  It is just strange to me in a "vs." blog.   In RichFaces 4.0 we have integrated with the Comet project for our push mechanism, and even in 3.3 it was not just common ajax requests.    We also have fantastic portal support through the Portlet Bridge project: http://www.jboss.org/portletbridge   As I said, I really like the IceFaces project, and the team.  I think both are good JSF component libraries and bring their own pros/cons to the table.  However I really don't think this blog is a fair comparison, and felt I needed to reply.   Regards, Jay Balunas    

Thank you for your reply. I have worked in several projects using RichFaces, don’t get me wrong , I think it is a great component library. Yes, RichFaces has also a strong community and some of the points that you mentioned give the readers a wider picture. There are some points that I thought to emphasize: I think that ICEfaces Ajax push is more mature; Every library has its pros and cons, (as I mentioned) developers using RichFaces have to write more UI behavior using more tags/onComplete/Rendering, etc… This gives flexibility in some cases but they sure write more code and a4j tags. The fact that ICEfaces partial submit does it for you, it enables the developers to focus a bit more on the server side. Although, it is crucial that the developers should know how this mechanism works and to learn also the ICEfaces Extended request scope, for not making common overloading mistakes. Thank you for your input, this is what VS. / Blogs should achieve: sharing information/knowledge/experience and every insight is welcome.