Whether because of java news, google, or coworkers, I’m sure you’ve all heard of the latest buzz in the framework scene. Of course, I’m talking about JSF. When someone says “JSF” they are referring to both an implementation of JSR 127 and the various vendor provided component libraries that follow it. But what exactly is JSF? Simply put, it is a java based component framework designed to make the building of rich web applications a simple, fast, and efficient process. Well, of course, the advocates of any technology will make claims of similar grandeur. But out of the hundreds of frameworks already out there, why is this presentation on JSF? What puts JSF ahead of the competition? One of the most renowned qualities of JSF is its superior form handling. Out of the box, all the implementations provide a set of useful server side validators that can be implemented in just a few keystrokes. In the event that a user’s input violates a constraint, the page is refreshed, form data is reinstated, and a relevant error message is displayed. This is a nice alternative to the user typing a few hundred characters too many and then upon submitting it, much to their dismay, having it all lost. Another key advantage of using JSF that has generated a lot of buzz is the ability to separate the back end from the front end. Say good-bye to the scriptlets and javascript cluttering up your code and say hello to a shorter development cycle. Adam, the front-end developer, only has to worry about presenting the data while John only has to worry about how to provide that data. Furthermore, if Adam comes up with an innovative idea that would reduce his workload, he could tell William to encapsulate it in a custom component and save hundreds of lines of code. In this way, each worker only needs to learn how to do their own job, thus decreasing the steepness of the learning curve and keeping workers out of each other’s way. Practically, in a JSF project, programmers who are oblivious to the workings of JSF can be equally productive as the JSF gurus. The key concept is that division of labor increases simplicity while maximizing productivity and accelerating the adoption process.