Software architects and developers are finding that HTML5 is an excellent solution for creating applications for desktop and mobile use. There are many aspects to the Worldwide Web Consortium specification, and more technologies are planned. SD Times editor-in-chief David Rubinstein spoke with Michael Smith, who’s on the W3C HTML Working Group, about the specification and the use of frameworks to create those applications.
SD Times: The HTML5 specification and many of its pieces are in advanced stages of standardization. Which pieces of the platform still need to mature and gain support from browser providers?
Smith: As far as standardization of the HTML5 specification itself, the HTML Working Group has published a Candidate Recommendation (CR) that contains a set of features that represent the complete set of features for HTML 5.0. That HTML5 CR spec is feature-frozen and represents a “release” branch of HTML5, and we have a plan in place to make that a final standard (W3C Recommendation) in 2014.
The HTML Working Group is also publishing a “Nightly” version (a.k.a. HTML 5.1) of the HTML spec that represents the “development” branch of HTML5, to which new features can be (and have been) added. For example, the group recently added the new <main> element to that HTML Nightly spec. The group is also publishing some “extension” specifications for features that might eventually become part of HTML; for example, a new “srcset” attribute for the <img> element, as well as an extension spec for a new <picture> element. Both of those are intended address the use case of so-called “responsive images.”
But the Open Web Platform is something much larger than just the HTML specification and its related extension specifications. We are continuing to add features to it through specifications published in a number of different W3C working groups—for example, the Web Applications Working Group, which is working on some important specifications for something called Web Components that is going to be a major new addition to the platform, as well as the Indexed Database API specification, which provides a very powerful mechanism for applications to efficiently manage storage of their application data on the client-side.
The group will also be producing a much more powerful means for building faster, more efficient Web applications that run offline in the browser rather than needing to make network requests. Of those three features, the Indexed Database API is the most mature in terms of browser support and the progress of the specification. The Web Components features are maturing, but it will still be some time before they are usable. And the new offline-Web-applications feature doesn’t have an actual draft specification for it yet.
As far as finding information on what pieces of the platform still need to mature and gain more support from browser providers, a site that I can recommend is CanIUse.com. Some of the information from that site is now also incorporated onto WebPlatform.org.
But I want to also mention that along with the work that W3C working groups are doing to progress particular specifications, it is also investing very heavily in additional work to make the platform overall more robust.
One example of that is the testing effort we have started up, which is led by Tobie Langel, who’s working for W3C now full time as a Fellow on loan from Facebook. Tobie recently blogged about his plans for that testing work.
Another key area into which the W3C is putting a lot of resources is the area of improving the performance of Web applications. Along with testing, performance is one of the major areas of focus that the W3C, organizationally, has identified as a major priority. We have a working group, the Web Performance Working Group, whose work is entirely focused on developing new technologies and new standards for improving the performance of Web applications. Philippe Le Hégaret from the W3C maintains a document with details on some of the high-level concerns the W3C is looking at carefully as part of the performance effort.
Finally, another thing I should mention is that the W3C is also spending time and resources to look at ways to “close the gap” between features and behavior that are enabled in so-called “native applications” available for mobile devices, and Web applications that run in browsers. Dominique Hazaël-Massieux from the W3C maintains a document with a lot of information about that effort. All of those efforts feed into the overall goal of maturing the platform.
How has HTML5 becoming a “living specification” helped or hindered browser compatibility as well as the offerings of HTML5 framework providers?
The “living specification” model has helped promote better browser compatibility by providing specifications that browser implementers can rely on as having the most up-to-date information.
HTML as a technology—and the Web platform overall—are constantly evolving, so it makes sense to have specifications that reflect that. The W3C does that by making editors’ drafts of specifications available, and by having editors that update those on a regular basis. In the specific case of the HTML5 spec, we also do that by providing an HTML Nightly branch.
However, along with those, in the case of HTML, the W3C also provides a “release” branch of the HTML spec (that is, the HTML5 CR draft) because it’s also useful to the industry and the market to have specifications that contain a specific set of features, without new features being added to them continuously. That gives those who want it a specification for a stable set of features that they can target in their products and services.
Getting back to the “living specification” model, along with that are other places where new features for the platform are emerging. One of those places is in W3C Community Groups. The W3C developed Community Groups as a means to facilitate wider participation in innovation around new features for the platform. And the Community Groups’ effort has certainly brought in a lot of new participation to W3C: There are 120 Community Groups with nearly 2,600 people participating in them.
How does WebKit work, and do you think it causes confusion about the specification, the “living specification” and what is experimental?
Discussion about how WebKit works (and now Blink as well) are a little out of scope for me personally to try to comment on. But there are plenty of others who have written about it. The best write-up about that I can remember seeing recently was Paul Irish’s “WebKit for Developers” blog posting from a few months back.
What are the advantages of using a framework to develop HTML5 clients and applications?
Good Web-application frameworks help to abstract away a lot of the difficulties you’d normally encounter when developing a Web app. In particular, they can really ease the amount of time and frustration that developers need to spend worrying about browser-compatibility issues, because they can deal with those issues behind the scenes without the underlying messiness needed to be exposed to you as a developer. Also, the good frameworks are “future proof” in that they are designed to continue working as expected even when browsers get updated with new features; they don’t “break.” So in that way they can also help a lot with long-term maintenance of your Web applications.
So the advantage to developers is that by using a good, standards-compliant Web-application framework, you can cut your development time and costs pretty considerably, while also helping to “future proof” your applications and so reduce your ongoing maintenance costs.
Also, I want to add that the better frameworks in fact sometimes end up producing features that eventually end up becoming targets for standardization. In that sense, the frameworks can be and have been a really powerful proving ground for new innovations and new ideas for improving the platform.
What would you say are areas in which the specification needs to extend? Performance? Cryptography?
Performance is certainly a key area that’s a very high priority for the W3C. (See my response to the first question for more information about what the W3C is doing around that.) As far as cryptography, yes, that’s an area where there’s still a lot of room for extension, and the W3C actually has a working group devoted specifically to that.
Another area that’s somewhat related to the topic of frameworks is the work going on at the W3C on so-called “Web Components.” There’s a very good document that introduces the concepts and features behind Web components, and it’s written in a way that doesn’t require you to be an expert to understand it.
It’s hard to briefly explain what the Web Components work is all about, but in part it’s a powerful way for developers to more powerfully “compose” Web applications and reuse pieces of code within their Web applications. It’s really going to change the way that developers create Web applications—change things for the better.
A more in-depth look at HTML5 tools is available here.