JSF: RenderKit Blues

This is the final part of my three-part series on why JSF isn’t my personal choice for future development work. I focus on the woes of the doing HTML interfaces in JSF.

Download JSF Part 3.

The major problems I speak to:

  • The HTML put out by today’s JSF components is neither standards compliant or semantically meaningful. Take a look around the web, and you’ll see all sorts of movements that require good, semantic, standards compliant HTML. JSF’s rederings are stuck in 1999.
  • The HTML for the components is very far away from the page layout (it’s in the RenderKit). To fix HTML problems, programmers will likely find workarounds instead of fixing the problem. That’s a set of Broken Windows waiting to happen (see The Pragmatic Programmer) . It doesn’t encourage the kind of clean programming that I think it ought to.
  • RenderKits are an artifact of the Architecture Astronauts. They are so unlikely to be used for the purpose for which they were designed that they create more pain than solution. (Will all seven of you using your JSF for HTML and WML please stand up?)
  • Finally, JSF turns JSP almost, if not entirely, into a data language (or declarative language) instead of an imperative language. The page layout is used to configure the component tree, and has no direct representation of executable statements like “if” and “for”. Some view this as a triumph; I think it’s a tragedy.

Again, I’d rather be solving the business problems than finding workarounds to these restrictions and annoyances of JSF. If you’re interested in reading and hearing more, please see my previous posts here, here and here.

UPDATE: The mp3 file should now be in the right spot. Serves me right for posting in a rush. Sorry. While I’m at it, I might as well claim my Odeo channel (odeo/0f55e88149deb27e). Enjoy.

3 Responses to “JSF: RenderKit Blues”

  1. murphee Says:

    Erm… is it just me or is the link to the file not working? I get a 404 error

  2. Michael Slattery Says:

    I generally enjoy your podcasts. I’ve listened to the first 2 JSF podcasts and I plan on listening to this one too. However, I have some feedback. It seems like you are complaining mostly about an implementation of JSF rather than the spec itself. Most of the problems you describe aren’t necessarily a problem with JSF, but rather a problem with the specific implementation you used.

    Some of the issues you describe *are* due to the spec; I just think that it’s a minority of your complaints. To be fair, I think it would be useful for you to make the distinction in future criticisms.

  3. TestImage Says:

    I hope you will evaluate Facelets and JBoss Seam soon.

    [Editor's Note: I normally do not post anonymous comments. I have deleted most of this one, but felt that the poster did provide pointers to information others might find useful.]

Leave a Reply