The wisdom of using “non-standard” JSF enhancements
One of biggest selling points of JSF is that it is “Java EE standard” technology. However, as developers are starting to discover, the power JSF can be greatly enhanced by “non-standard” technologies that complement JSF: Facelets, Seam, Ajax4jsf, Spring-JSF are just some examples. So, shall we use those “non-standard” technology with JSF? Would they defeat the whole purpose of leveraging a standard-based solution? Well, I think the short answer is: yes, you should use “non-standard” technologies whenever it helps you …
First of all, let’s be clear that the Java EE standard is evolving. Today’s “non-standard” technology, if proven useful, may well be tomorrow’s standard. Hibernate and JPA is a perfect example. In the JSF space, Facelets is written by a Sun employee and Seam already had a JSR approved. They may well become standard technologies in the not too distant future.
But even that aside, I think it is important to understand that the real strength of JSF is that it is a standard component technology. It allows third party vendors to create components based on a standard set of APIs and lifecycle. It also allows tool builders to develop visual UI editors based on the standard interface. That is different from previous attempts of component-based web frameworks in Java, such as Tapestry and WebObjects. The standard-based approach has created a vibrant components and tools market place around JSF like no other Java web framework has seen. And that kind of “standard” is NOT affected by your choice of JSF add-on frameworks such as Facelets and Seam.
So, relax and choose the best tool you need to enhance your JSF development experience. The standard component framework of JSF will continue to be leveraged by 3rd party vendors to give you a rich choice of JSF components and tools. That, is the true power of the JSF standard.
October 24th, 2006 at 1:57 pm
The whole value of it being a standard is that it creates an ecosystem of non-standard extensions that all work smoothly together. If there was no JSF, then I would have to build the functionality of JSF, Facelets, ADF/Trinidad, Ajax4JSF, Seam all by myself, all in one go. This is so much stuff to create that essentially no-one can do it, which explains why none of the environments which compete with JSF have anything approaching the functionality of a full stack of EJB3/Seam/JSF/Facelets/Ajax4JSF/Trinidad.
The existence of these extensions is exactly what validates the usefulness of the standard.