Skip to main content

Brief interview with Cay Horstmann, author of Core JSF, on 20090602 at JavaOne

Posted by edburns on July 14, 2009 at 11:56 AM PDT

I had a brief conversation with Cay Horstmann during JavaOne at which
I was eager to hear his list of gripes about JSF. Before I get into the
content, I have to say I don’t know why people feel compelled to
be unprofessional when they talk about this stuff. What can be gained
by starting out a conversation with, “So I went through Core JSF
and looked for all the Derogatory comments about how stupid the
so-called expert group was...”? Granted, he follows up with,
“and it wasn’t as bad as I remembered”, but still, if
you’re going to be colloquial, why start out unprofessional about
it? Thankfully, the rest of the conversation mostly sticks to the
technical content. If you haven’t been to JavaOne, this is an
example of a typical hallway conversation that I end up having

Here are Cay’s points from the conversation. The raw audio is
available at <>.

  • Inconsistencies regarding converter and validator tags
    regarding when they sometimes take an id, sometimes take a
    method reference, sometimes they take a class name...

  • Methods in Mojarra that are needed by application
    developers. Look at the common things that every app
    developer needs, put it into the API.

  • Injection. We have the annotation on the field, but it
    really acts on the setter. This will confuse people.

  • Internationalization of Resources. Current design is
    broken in the following way: it doesn’t have a natural local
    fallback mechanism as the normal ResourceBundle does.

  • Different Viewpoints for the JavaDoc: app developer,
    component developer, etc.

  • Love the color coding in the Javadocs.

  • TLDDocs missing some content (mostly fixed now).

  • Cay suggests a “fit and finish JSR” for JSF.

Technorati Tags:


Cay Horstmann's comments, both in the beginning of your interview, and now after your post are spot on ... and funny. The JEE community, on the other hand, has been full of snobs for years who have spent plenty of mouth on good coders like Ed and Jay in the forums and in hallway conversations making derogatory statements about various frameworks with the mistaken impression that it makes them sound like a Java expert. From his recent book "Secrets of the Rock Star Programmers", Ed does just the opposite, and a little truth goes a long way. For example, he commends Rod Johnson saying that he is an inventor that "revolutionized Enterprise Java application development". That's a nice and professional way of saying that Rod actually fixed JEE instead of just whining about it and grandstanding. How many forum posts can I recall from "Java experts" complaining about this or that web framework, and _especially_ J2EE, and how it is broken this way or that? Well, I would like to second Cay's remarks that the new version of JSF looks great! Where I work, we will continue to use JSF in our apps, in spite of "how stupid the so-called expert group" is because, stupid or not, the new JSF is an outstanding framework, and we like seeing people, like Ed and Cay, who actually step up to the plate and do the hard work that it took to get JSF where it is, and it is excellent. And we have heard you other "Java expert" mouths out there and seen the magic numbers you have left in our code repositories. We know who you are, and why you try to drag other people's good work down. We do not like you. Your days are numbered.

Hi Ed, sorry you felt offended by my initial comment--I just meant to be funny. You know that I have the highest respect for your hard work. Thanks for posting the list. I meant to do this for a long time. Just for clarification. I do NOT want a JSR just for fit and finish. I'd just like the JSF expert group make an explicit "fit and finish" effort for JSF 2.1/3.0 in the scope of the next JSR. @jkva: Yes, these are all minor, and my point in talking to Ed was to raise visibility for these minor issues. The expert group does very well with the big issues, but the "fit and finish" tends to fall between the cracks when deadlines loom.

Is it me or are there no real big issues in that list? I only see minor issues. Standardizing useful Mojarra and MyFaces methods seems useful though. Nobody likes to type FacesContext.getCurrentInstance() over and over again. Useful utilities like: JSF.fc(), JSF.externalContext() and JSF.viewRoot() would save me a lot of typing. These kind of utilities are often the first thing I write.