There is a lot of well-founded buzz around HTML5 but I assert that nearly all of it stems from how HTML5 enables the UI authoring experience to focus entirely on the browser, instead of on server-side processing that delivers content to the browser. For years, I've been making the case that building a web application is really building a distributed application, and therefore the art is finding the best allocation of processing tasks (UI, persistence, business logic, security, etc.) to processing nodes (smartphoe, tablet, laptop, desktop, browser, server, etc). The emergence of HTML5 as a viable deployment platform changes how we answer the question of "where does the User Interface processing task go?" My goal with this blog entry is to shed some light on what this means for JSF.
Where are we now and how did we get here?
Ever since the addition of the
<form> element to HTML+ in 1993 developers have been trying to force the pace of innovation delivered by browser vendors in order to deliver more and more compelling applications while lowering development/deployment/maintenance costs. Two factors have historically influenced this trend: ubiquity and capability. As soon as enough people had reasonably capable browsers, server side frameworks, such as JSF stepped in to give developers what they'd been wanting since 1993: "yeah, this browser stuff is nice, but what if I want to make my own darn tags? How can I do that?"
How does JSF 2.2 fit in?
So where does that leave JSF 2.2? As you may know, HTML 5 is a huge specification and it addresses many different categories of content. We are still very early in the development of JSF 2.2 but I can state we plan to address elements in the following content categories.
JSF applications already have large amounts of metadata available to them. We need to find the best way to allow that data to naturally express itself via the corresponding capability in HTML5.
- Sectioning and Heading
Just as the lightweight ontology of section values in HTML5 was obtained by searching google for how people were using their div tags, the same idea can be applied to how people are using their facelet templates.
- Form associated elements
We're still working on delivering a revision of the spec that ties up all the loose ends left over from JSF 2.1 such as
<f:viewAction />, Cross Site Request Forgery protection, and File uploads. Once the Early Draft Release milestone has been reached, we can start to think more seriously about what to do with HTML5.
Technorati Tags: edburns