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