Sign up ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

A presentation linked in an answer here demonstrated a comparison of several web development frameworks. It was a good comparison but caused me a little worry based on the technology stack that I have been pushing for awhile now at my current company.

While it seemed like the author was biased towards RoR, he pointed out some major pain points about JSF, which I am using right now and personally have no significant problems with. It seems hip to hate JSF, and I would like to look into something different like Wicket. The problem is that rich third-party component libraries like Primefaces have me hooked by the extreme convenience of throwing prebuilt web components onto a page with simple XHTML compliant markup.

Frameworks like Wicket are great because they merge the page with the View, and with Spring this is a powerful combination, but I can't help but wonder how long would it take me to implement the fully featured Primefaces Data Table component in a framework like Wicket?

Clearly JSF is a component based framework like Tapestry, but does Wicket have an answer to rapid component-based web development like JSF+Primefaces?

Further, I am aware of the major drawbacks of JSF, one of which being the level of effort and frustration it takes to develop a component, but with component suites in JSF becoming more stable and fully featured, is this a major issue for relatively simple web applications with loose open ended UI specifications? If it doesn't have to look exactly like the spec visually, why would custom components need to be developed?

I know there is a lot of JSF hate out there... just mentioning it a developer conference causes people to break out into seizures from so much fail. The web is littered with JSF Sucks blogs, but I have done some pretty cool things with it. Any thoughts on this?

share|improve this question
sometimes component should be developed . There are many policies of software development (long term / short term, general to market / to single customer etc) –  Jacek Cz Sep 9 at 10:34
petition to higher in reputation: please create wicket tag here, is absent –  Jacek Cz Sep 9 at 10:38

3 Answers 3

up vote 1 down vote accepted

Mostly the JSF hate blogs belong to 2009 and before, JSF 2.0 fixed many of the issues. I don't think it is popular just because of it's standard, remember that EJB 2.x was the standard then Spring came up. There are many web frameworks but JSF is still very popular. Also recent JSF Specs starting with 2.0 is designed according to user feedback acquired since JSF 1.x.

share|improve this answer
Thank you for your feedback, but being the creator of Primefaces you must be biased :P I love Primefaces BTW, great job! –  maple_shaft Dec 8 '11 at 20:25
... I would also like to add that integrating JSF2+Primefaces+Spring3+Spring Security3+Hibernate was a winning combination for me. I never once set up a fully functional and scalable site so quickly in my life. –  maple_shaft Dec 8 '11 at 20:36
You can call EJB 2.x a catastrophe standard but that didn't stop it from being used thousands of times. –  Chiron Dec 8 '11 at 21:22

JSF whether it is hated or not, it is a standard and that is what matters to projects managers.

I'm not aware of any components suite like RichFaces or PrimeFaces for Wicket, but long time Wicket users say it is easy to create your own components.

If you are happy and productive with JSF, then stick with it. No need to shop outside.

share|improve this answer
it is a standard and that is what matters to projects managers I agree. My decision to start with JSF was strictly "try to be in main stream". Old question "be standard" or "be better (in other sense)" That is the question –  Jacek Cz Sep 9 at 10:37

JSF is usable for me only with good IDE, such as Eclipse. Making forms / pages by clicking is very nice, like old Delphi / Borland C++. And almost to the same extent bad in long term maintenance, refactoring, making and changing "proof of concept" etc. JSF refactoring is bad, as in real-life clicked Delphi project. There is good access to a wide range of ready JSF components is positive of-course (few overflow with too many options to choose may apply)

Wicket is very good if You want to develop own reusable components, 2-3 evening with Wicket and You can. With JSF, after one month you can't made really usable components.

In Wicket, I can return to old project leaving on margin and continue to work with type-safe java code

Tests show that Wicket has better speed, lower RAM usage etc. It isn't important in my case, which is high, long term maintenance scale in my projects, but small user count.

You asked about Primefaces Table with suggestion that Wicket doesn't separate View from Model; this is is not true.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.