First released in March 2004, the server-side component model introduced by JavaServer Faces (JSF) brought the promise of simplifying Web-user interface (UI) development. Then in February 2005, Jesse James Garrett coined the term AJAX (Asynchronous JavaScript and XML) and the simplicity of the JSF server-side component model was overshadowed by a flood of rich UI frameworks with a client-side tilt.
AJAX frameworks (including Dojo, Prototype, and Script.aculo.us) are spurring an evolution in human-computer interaction on the Web. The stale click-and-wait experience once associated with Web applications is no longer acceptable. Users now expect real-time updates and desktop-like functionality coupled with the ubiquitous nature of the Web. Consequently, developers are now stretching the limits of the JavaScript programming model and battling cross-browser idiosyncrasies to mimic desktop functionality over the wire. The result is an escalation in the complexity of Web development – a problem initially resolved by the elegance of the JSF component model. Luckily, JSF has evolved alongside AJAX and is proving not only to be an ideal solution to simplify traditional Web development but also rich Internet application (RIA) development.