Canít say that I disagree with all of the comments here, but some are pretty biased. As far as JSP and Tags being a ďbig ugly kludgeĒ and a mistake, I would agree there are some issues but someone might want to inform the thousands of applications built and running using these technologies; successfully I might add. I know, I know, there are also many applications implemented with CGI, or Active Server Pages, or other non-perfect technologies. My argument doesnít necessarily make JSP good. But read on.
Hereís the problem as I see it. I want a UI technology where I can describe a UI separately from other aspects of the architecture, like business objects or data access layer. Have the UI architecture work for multiple channels, Web, Rich Client, Handheld, etc. and provide all of the typical features that as developers, weíve come to expect (localization, session management, security, validation, etc). And I want a consistent, portable approach. Note that I didnít say a standards-based approach. Although I think that inevitably an approach based on standards is beneficial, it doesnít bother me that if in the beginning there are no official standards if this helps to move the innovation along. Look at Struts and its popularity. There were no standards for its Tags for example until JSTL came along. This is fine with me.
However, we have to solve the problems I mentioned above. Just as people are tired of trying to decide what persistence mechanism to use for every new project, choosing a UI framework shouldnít be so difficult. However, Iím perfectly ok with letting the market settle that question. Regardless, I havenít seen a solution thatís perfect; each one comes with itís own scripting language or framework oddities. Why is choosing the best of all and combining into a single approach bad if it simplifies development and gets product to market faster?
So, whether itís JSF or some other technology or whether Sun and company develops it or it comes out of the Apache birthing ground, I donít care. The important thing is that we keep the innovation moving forward and donít settle on where we are currently at as an industry. Itís just not enough for large, multi-channel, enterprise-class applications.