A couple of weeks ago, Rick Hightower asked some pointed questions and made some interesting assertions about JSF 1.2, JSF 1.1 and MyFaces in his blog. This blog entry is a response to that blog.

I'd like to address some of these questions and assertions in light of Rick's blog.

  1. What's deal with JSF and Open Source? Exactly what was open sourced on 24 August 2005? Why was this done?

    I know it sounds like marketing spin and all that, but, really,Sun does understand the value of sharing for its investors, customers, and employees. It takes a long time to open things up that have been closed for a while. We started by moving all of our development and processes out into the open back in June of 2004. While the process was open, the licensing for the code was not. Sun followed up by releasing the source code and processes for developing our Java EE App Server in July of 2005, and shortly thereafter we relicensed the source code for Sun's implementation of JSF 1.2 under the OSI approved CDDL license.

    To summarize, Sun's JSF team is using an open developement process and an open source license for its JSF 1.2 implementation.

  2. What's the status of the JSF 1.2 spec and implementation? Has it been released yet?

    The spec is currently in JCP Proposed Final Draft. Per JCP rules, no one can release a final product based on a JCP spec until that spec is final. However, because both the container in which Sun's JSF 1.2 implementation runs, glassfish, and the JSF implementation itself are developed using an open process and open source license, there is nothing stopping you from using a promoted build of glassfish to try out JSF 1.2.

    Sun's JSF 1.2 implementation in Glassfish implements the entire JSF 1.2 specification, is feature complete, and we'd love to have your feedback on it on the public forum or project mailing lists. Please note that the binary code is licensed under Sun's Binary License.

  3. Which is "better" MyFaces or Sun's JSF Implementation?

    This question sounds like an invitation to a contentious debate which usually results in no clear winners. Rather than engage in such a debate I'd like to point out that I'm delighted that MyFaces exists and has recently passed the JSF 1.1 TCK. This validates the whole JCP process of open specifications that allow implementations to compte on the basis of quality and performance. More of that sharing jazz. Let me follow up by trying to refute some claims I've heard about Sun's JSF project.

    • Our issue tracker is totally open. File bugs and they get fixed. Pretty simple. I've also heard some complaints about the turnaround time for bug fixes. Of course, your mileage may vary, but one thing the Sun JSF team does that MyFaces does not, and can not, is to keep up with the latest spec as it is being developed by the EG. Fortunately, due to our open process, the general public can follow along with the development of the spec by watching what the Sun implementation is doing. Therefore, during periods of heavy spec development, the turnaround time can be slower, but we always make the best effort to fix bugs as soon as possible after they are filed.

    • We have a standard process for becoming a committer on the project, and anyone is welcome to join.

    • We do have some active external committers. The famous Jacob Hookom provided several bugfixes and the entire EL implementation. Jacob started as a JSF committer but went on to become an Expert Group member. Mike Youngstrom is also active in submitting bugs and patches.

    • We've fixed over 75 issues since our last release of JSF, but because we're a JSF 1.2 implementation, people can't reap the benefits unless they move to JSF 1.2.

    • Lastly, the general perception in the public is that reference implementations (RI) are not production quality. Sun's JSF implementation isn't just an RI, it is product ready and used in several products right now. Of course, Sun Java Studio Creator (new version now available in Early Access), and all of its customers, use the Sun JSF implementation. I'm also told that ADP uses Sun's JSF impl, and I think that FedEx does as well, but I have to verify that.

  4. JSF and AJAX, synergy or disharmony?

    I'm surprised this one is still out there. Ben and Dion, Greg and Torand I have stated on numerous occasions that the page author should not have to write AJAX by hand. Use a framework instead. As demonstrated at JavaOne, and in the Java Blueprints Solutions Catalog, JSF lends itself very well to developing components that use AJAX.

I hope this clears up the confusion, and I welcome your comments. In particular, I want to hear why people may choose MyFaces over the Sun implementation, both to join as a contributor, or as a user.

  Technorati Tags: edburns