Boycott JSF

These days, things have improved so much at Sun that one can be quite legitimately surprised when a J2EE/web type spec is released that has not grown from the user community.

The EJB spec for instance is now the poster child of community driven specifications. The whole existence of J2EE 5.0 stems from the needs of the community and the developers on the ground. Virtually every single specification under that umbrella has been revved either through pressure from users, or with the goal of allowing users to do what they do better.

The one amazing exception to this rule is Java Server Faces. To date, I have yet to see a single positive review of this spec that comes from a non-Struts user. WebWork, Tapestry, Spring, and pretty much every non-Struts framework users scoff and laugh at JSF. It’s ugly, it’s not intuitive, and it is hellbent on the Microsoft style approach; fuck the users and force them to use clever tools.

While this wouldn’t have been surprised a year or two ago (many of the specs were run the same way, driven by a few lunatics with bizarre needs rather than actual Real People), it is simply unacceptable these days.

I won’t go into the details of why JSF is crap. That’s a separate topic and there is already plenty of material out there, in fact you’d have trouble finding any ‘normal’ web developer speaking positively of it (once you discount people on the expert group, jsf vendors, and struts users).

So I beg of you all, don’t use JSF, boycott it, avoid it all you can. Do not let it thrive or prosper. We don’t want it improved or tweaked, we want it to die the horrible painful death it so richly deserves.

I can see the argument that the platform needs something like it. Taking struts and turning it into a specification is not the answer. The JSF group is in many ways much less constrained that the EJB group by backward compatibility. The few people who have chosen to adopt JSF can be (rightfully) dismissed as lunatics who expect to jump through hoops for every iteration anyway. Mission-critical JSF is practically an oxymoron, and there are many many great ideas in the community that should be leveraged and incorporated. Tainting the J2EE 5.0 spec with something so untested and universally reviled by the hardcore enterprise people, bread and butter webapp folk, and the hobbyist web monkey kids will do the the entire platform a great disservice.

29 Responses to “Boycott JSF”

  1. Fred Grott Says:

    Actually the best way for to call a boyoctt of JSF is in fact to actually describe why its crap with actual examples..

  2. Joseph Ottinger Says:

    “boyoctt.” “Why its crap.”

    Of course, these are good reasons to boycott YOU, Ferd Grtto, as opposed to the JSF, but hey, if the shoe fits…

  3. Ian Pojman Says:

    It’s the people who need examples to see that crap is crap which perpetuate the existence of the mindnumbing web frameworks which have become so ‘de facto’.

    Of course if you don’t think for yourself, you’ll be happy using watercolors to paint a fence.

    It’s hard not to be acerbic having to deal with such software daily, knowing full well that reasonable implementations of Web MVC exists, it is like watching people jump off the top of a building when there is an elevator waiting.

  4. Anonymous Says:

    Speaking of boycotts, didn’t Ferd say he wasn’t coming here any more?

  5. Anonymous Says:

    JSF++

  6. buko Says:

    yeah fuck JSF, long live dot NET!

  7. SlowMovingTarget Says:

    My favorite comment on this comes from Pier Fumagalli on the Apache mailing lists:

    “I usually call ‘em ‘Java Server Feces’… But that’s just me… :-)”

  8. Behrang Saeedzadeh Says:

    I wish .NET community had someone like you to slow down its progress and wide acceptance and at the same time make its developer community feel depressed and willing to switch to Java…

  9. Cameron Says:

    I’m willing to switch to Java now ..

  10. jw Says:

    Behrang Saeedzadeh,

    atleast try one other non-struts web mvc before wanting to suck java serverfeces cock. Don’t you think?

  11. buko Says:

    java server fuzzes is there because of struts. I dunno why people still want to use it.

  12. Mark Says:

    Glad to know that I’m not the only one who things Struts and etc. is NOT the way to build apps.

  13. Anonymous Coward Says:

    Sun needed to do JSF secretly and without listening to anyone so they could manage to create a JSF IDE (SunOneStudio) without it being crap compared to competition.

  14. Anonymous Coward Says:

    Sun needed to do JSF secretly and without listening to anyone so they could manage to create a JSF IDE (StudioCreator) without it being crap compared to competition.

  15. Anonymous Says:

    As one who’s put several apps together using Struts, I can recognize a struts spin-off when I see one. JSF is rehashed Struts + a semi-cool event model + a not so cool component packaging scheme. Struts was PAINFUL, but it can be excused because it was written over 4 years ago. JSF looks like the groupthink product of several Struts fans. I’m moving my latest app to a new architecture and needed/wanted a new MVC and was very tired of Struts. Ended up settling on Tapestry over JSF for a myriad of reasons, but the biggest was this: If you need a fancy GUI tool to make your framework simple, you can’t really call it simple, can you.

  16. Rick Hightower Says:

    I dig JSF. I have used JSF. I never used any drag and drop tools. I find they get in the way. You can use JSF *without* fancy tools. It is an urban myth that you have to use fancy tools to use JSF. Perhaps Tapestry is better…I keep hearing that it is. JSF works fine.

  17. Rick Hightower Says:

    “It’s the people who need examples to see that cr@p is cr@p which perpetuate the existence of the mindnumbing web frameworks which have become so ‘de facto’.”

    It sounds like you much prefer people who have never used a framework to comment on it. You can’t eat real food, only baby food. You intellectual stomach can’t stand a different opinion. Are you always so spoon feed?

    JSF is well designed and productive. You don’t need a fancy IDE to work with it. I just use Eclipse with no drag and drop JSF support. BTW I love Eclipse too.

    I have used other web frameworks. I feel JSF is the most productive web framework that I have used. It is natural and productive. It just makes sense. It is well-designed. Is it flawless? No. Will it get better over time? Yes. Does this mean I am anti-Tapestry? No.

    JSF is productive….. much more so than Struts or similar Model 2 era MVC frameworks (IMO including WebWork). With JSF you can do true MVC not model 2 watered down MVC that Struts and WebWork provide. It provides true GUI components and a true event model. I am not saying that WebWork or Struts don’t make more sense in some situations, but for many projects JSF is better.

    The only other web framework (in the near future) I might consider is Tapestry. To me the killer stack is still Spring+Hibernate+JSF.

  18. /9 Says:

    What do you expect from Craig McClanathanahan? He hasn’t produced anything but hack/bug laden fecal sputum since the get go. Commons Chain indeed.

  19. Anonymous Says:

    “Hardcore enterprise people”. Can you have hardcore mediocrity?

  20. a faithfull follower of this Blog Says:

    Hmmm… I’m confused Hani. Does the total lack of the usual amount of unmentionables in such a lengthy entry mean that you’re, secretly, admiring JSF but feel obliged to live up to the expectations of this blog, or do you feel you really, really, need to get the message across?

    - a faithfull follower of this Blog

  21. Rob Abbe Says:

    At the risk of getting blasted for having a differing opinion, I must say that Overall, I think it’s a big plus for Java to have JSF based tools that are on par with ASP.Net.

    Making Java accessible to more developers is a plus and having a standard supported between vendors is a big win as well.

    Web development is only a small part of my current job. I hate and I stress hate working with HTML. Any tools that make an effort to hide the ugliness of working with HTML and other web related crap is fine with me.

  22. fx Says:

    Not sure if “mission-critical JSF” is an oxymoron. “Microsoft Works” is one though.

  23. thecodemonster Says:

    I like JSF. As a software developer, and not some mind dumb twit that needs a framework to do web apps. Or even worse, a MIS major who can’t figure out that separation of concerns is just polished old fashion problem solving.

    I like the fact that I can build a complete user interface with JSF and not have to wait on the EJB or avalon component backends to show up from whatever third world nation outsourcing company won the contract.

    JSF is the best thing to help the JAVA web-based open source applications community catch up with PHP. Cause believe me, the OS crap that Hani is consitently kneels in front of hasn’t and can’t produce any applications that people can just USE.

  24. Rick Hightower Says:

    “I won’t go into the details of why JSF is c#$%.”

    Be honest… I doubt that you could go into detail. Your hatred for a technology that you have not used is troubling.

    “once you discount people on the expert group, jsf vendors, and struts users” or apparently by your later post… anyone whatsoever who disagrees with you.

    I think you have shown your true colors. If you don’t agree with Hani, your opinion does not count because of XYZ.

    “To date, I have yet to see a single positive review of this spec that comes from a non-Struts user. WebWork, Tapestry, Spring, and pretty much every non-Struts framework users scoff and laugh at JSF. It’s ugly, it’s not intuitive, and it is hellbent on the Microsoft style approach; f555 the users and force them to use clever tools. ”

    Spring has JSF integration. I guess they realize what you don’t. JSF will be used by a lot of companies.

  25. DrReverend Says:

    I’ve used Struts before and found it to be ok, not great, just ok.

    I tried JSF for the first time today.
    Now I have a new appriciation for Struts.
    I found JSF to be awkward and unintuitive.
    I just couldn’t see what makes it better than Struts. It doesn’t seem to solve any of Struts major problems, (whatever you may consider them to be). If someone can explain it too me I’d really appriciate it.

    I don’t see the point of JSF. Struts exists and has had pretty widespread industry acceptance.
    Why do we need JSF?

  26. qwerty Says:

    I think Craig Mac Calahan is a good programmer. Tomcat 4 is quite well done. However I have to agree that Struts is not so great (did not change much in 4 years), and that Tapestry has a very good approach to build web apps (unfortunately it is a little bit on the slow side).
    I guess the problem with struts/jsf is that they absolutely wanted to use the cool jsp custom tags which end up producing something unreadable, not easily maintainable.
    I have a complaint about Webworks: it seems silly to use velocity behind their custom jsp tags => Webwork + jsp = not good.

  27. Michael Jouravlev Says:

    How one can compare Tapestry and Struts? Struts is a controller framework (taglibs aside), Tapestry is a view framework.

  28. Tucsonalama Says:

    First I love the blog…

    But having spent the past year trying to wrangle struts into handling context sensitive menu options on the same page and then having to explain how to do it over and over again to other struts developers… frankly, JSF looks very attractive! Ahhh.. event driven. Like a tall glass of water.

  29. Arash Rajaeeyan Says:

    >>>I have yet to see a single positive review of this spec that comes from a non-Struts user.

    ok now we have JSF 1.2, alignment with JSP, facelets, and web beans (JSR 299)

    do you think this review is enough, or you think it needs more review?

Leave a Reply