One of the most important goals for many software developers is the ability to build a great application. What makes a great application is a matter of opinion. Some applications are great because of the amount of data they can process and manage. Others are great because of the amount of time and effort they save. Then there are applications that are so powerful they earn the unique designation of "killer app." The platform independence of the Java programming language and the breadth of options in the J2EE platform provide a great deal of opportunity for developers to build great applications.
Many of the API's in the J2EE platform address big issues concerned with business logic and integration. While many of the APIs in the J2EE platform address important aspects such as business logic and integration, the user interface for J2EE applications has never been addressed in a standard way before. Until now, most solutions required proprietary technology or weren't very powerful. The Servlet/JSP environment provides a powerful model for creating web applications; however it defines no APIs specifically for creating the client GUI. JavaServer Faces is designed to make it easier to build powerful user interfaces for J2EE applications. The Java Community Process(sm) (JCP (sm)) was instrumental in providing a forum for the industry to collaborate on the development of a standard that makes J2EE platform a more productive and easier to use environment.
When we first formed the JSR 127 (JavaServer Faces) expert group we realized that tool vendor support was crucial to success. Tool vendors have been active in our expert group since the beginning. We'd like to recognize Adam Winer at Oracle for his efforts, including relentless rigor in reviewing design ideas, writing and contributing high quality code, and sharing domain experience to help us avoid pitfalls that only a veteran would know about. We would also like to recognize Brendan Murray at IBM who played a key role in satisfying our top level requirement for Faces to run inside of a JSR 168 portlet, as well as sharing expertise on Localization. Many other tool vendors were involved including Borland, BEA, and Macromedia. The most important commitment of all that we received from tool vendors is their plans to support JavaServer Faces with product releases this year.
Along with tool vendors other experienced engineers participated in the development of the specification as major contributors. Among them was Hans Bergsten an independent member of our Expert Group - who had a major impact on the outcome of the specification. He contributed countless hours helping us complete the specification, ensuring that it has sufficient features yet still has room to evolve as technology needs change. Another honorable mention goes to David Geary. Both Hans and David are publishing books on the JavaServer Faces specification; we look forward to reading them.
We'd also like to recognize the team from Sun that built the Reference Implementation. The RI Team built, integrated, tested, documented, and managed the release of the Reference Implementation that serves as the standard for JavaServer Faces implementations. Thank you to Jennifer Ball, Jennifer Douglas, Justyna Horwat, Roger Kitain, Ryan Lubke, Raj Premkumar,and Jayashri Visvanathan, for all of your help. We have such confidence in the quality of their work that we made the Reference Implementation free for anyone to use and/or include with their applications.
We'd also like to thank the community for the patience and support demonstrated while we took the time to develop the specification in a manner that satifies most needs. We are inviting the entire Java technology community to contribute to the future direction of JavaServer Faces. We encourage you to download the Reference Implementation and begin working with it to build your next application. Please send your comments to email@example.com and tell us what you'd like to see in future versions of JavaServer Faces. Build your own JavaServer Faces components; be active in the Java community and join an online community of developers such as java.net.
There are many ways to build a great application, and a critical part of the success of any application is the user experience. That part is up to you. We are confident that JavaServer Faces will make it easier for everyone to build great applications or even the next killer app.
Ed Burns and Craig McClanahan