Max from Exadel (the original creator of JBoss Tools) has written a great reply of the ten points that Bruno Borges complained about JSF.
I agree with all of Max's points, and disagree with most of Bruno's views (although technically they’re valid complaints).
However I don’t agree with Max's “In conclusion, JSF is not perfect, no framework is.” The purpose of a comparison is not to declare whether some framework is perfect or that some framework is all bad.
It’s to analyze its strong points relative to another framework(s) which have weaker areas. I would love to know despite these 10 ‘hate points of JSF’, there should be some hate points JSF still does better (i.e. “yeah it’s bad, but others are worse”) than some other framework.
Also to analyze its weak points (in the case of JSF which is the subject here), also relative to other framework(s) which can do better. I guess this is the most useful.
For example, referring to point 10 “the web is fast, standards are slow” I think the recent standards somewhat admit this, and provide mechanism to solve this “problem.”
RichFaces, IceFaces, PrimeFaces, the versatile PrettyFaces, and the Seam project is a testimony that the standard itself (be it JSF 1.2 or JSF 2.0) is not the the only thing that matters, innovation can still (and will always) happen elsewhere. It just happens that the JSF is the core functionality that we can kind of rely on.
The CDI spec addresses precisely this “standards are slow” problem. It does not try to be everything, but it embraces everything that can be developed on it (CDI Extensions).