Book Excerpt and Interview: Deploying HTML5
Deploying HTML5 is a book written by Aditya Yadav, a former Sr. Architect for ThoughtWorks and actual CTO of a consultancy firm, explaining the HTML5 standard components, showing how they are implemented across major browsers and providing code samples for using them.
Book Excerpt: Chapter 13- Web Sockets (PDF) contains essential information on Web Sockets specification and the code necessary to write a chat application, including server side code, that works in Google Chrome which currently implements Web Sockets.
HTML5 is currently a draft specification of a standard supposed to replace HTML 4 and XHTML 1. While some consider the standard is far from being ready for adoption, the author believes that HTML5 is going to become a W3C recommendation some time this year (2010) and companies will start deploying applications by the end of 2010 and HTML5 will start being largely adopted in 2011.
The book covers most of the features specified by the HTML5 standard detailing how they are implemented across major browsers – Chrome, Firefox, IE, Opera, Safari, a summary table being presented below:
The author provides source code used to test each feature on every browser, pointing out which browser currently fully or partially supports the feature, or which browser does not yet support it.
Deploying HTML5 is useful for architects and project leaders to evaluate the current status of HTML5, its suitability and the effort required to create and deploy applications based on it. Developers can use the source code as boilerplate code for their HTML5 applications.
InfoQ has interviewed Aditya Yadav related to HTML5.
InfoQ: What differences are developing HTML5 applications for the major browsers?
Aditya Yadav: HTML5 is meant to be a standard all browsers including mobile ones implement. So, from that view point, there should be no difference in developing for different browsers. The reason behind HTML5 is to do away with ad-hoc proprietary implementations to provide similar features. The difference lies in the varying degree to which the browsers have implemented HTML5 features. This is going to change soon. Unlike HTML 4, browser vendors are already implementing HTML5 features before it has become a recommendation. The book actually covers each feature as it applies to all major browsers.
InfoQ: Which is the fastest adopter of HTML5? Which is the slowest?
Aditya Yadav: This page http://wiki.whatwg.org/wiki/Implementations_in_Web_browsers is meant to track implementation progress in various browsers but the page seems not to be up to date. Another page is http://findmebyip.com/litmus#target-selector. According to what I have seen, the slowest adopter surely goes to IE/Microsoft and the fastest adopter goes to Opera. Is that going to change Browser Market Shares? I don't think so. Soon other browsers will catch up and if your corporate browser is 'X', rather than switching browsers, companies are continuing with pilots and waiting for the features in their browser of choice to get implemented. Some are delivering the required browser as a virtualized application. One quick way though not complete to test browsers is by pointing your browser to http://html5test.com/ to check what HTML5 features have been implemented by your browser of choice.
InfoQ: What is in your opinion a reasonable roadmap for HTML5 adoption considering the slow advances HTML 4 had?
Aditya Yadav: I think the first step is to adopt Opera for HTML 5 applications. Opera will deliver most of the features the soonest. The Adoption has to move from Pilot -> Intranet ->Internet. Typically our clients have done a browser agnostic pilot. The intranet applications typically used offline app features, audio/video, server side events and web sockets. I think that should be a good way to start. Deploying on the internet without a controlled browser choice should be targeted for after December this year. Still 8 months away. Unless, like Video Websites, you are planning to just use the Audio/Video features which are more or less implemented on all browsers with fallback to flash etc. possible.
InfoQ: What are some roadblocks in HTML 5 adoption? How can they be surmounted?
Aditya Yadav: A part of the problem is that you have to have reliable fallbacks for people running older browsers, in my company 80% of people use IE6 etc. which should be a similar figure for the internet users. Most HTML5 features have fallback options e.g. audio/video etc. but something like Web Worker, Offline Apps, Server Sent Events, Web Sockets are very difficult to program for fallbacks. I think the transition to HTML5 is a difficult thing unless you can force people to download and install one of the compliant browsers/versions. This will take time to happen organically, I don't think much can be done unless you are YouTube and can ask people to install a new browser, you are Microsoft / Apple / RedHat /Ubuntu and pre-install HTML5 browsers. I think HTML5 will happen but the tide should come round about December this year or Q1 2011 looking at projects people are undertaking and the momentum being gained.
InfoQ: What are some of the features already contained by HTML5 but not covered in the book?
Aditya Yadav: One big area that is left out is WebGL/Canvas3D which is not covered in the book. Google recently converted the Java port of Quake to a HTML5 WebGL browser based game using GWT. This is something I have left out completely as I believe developers who are already used to 3D programming using OpenGL / DirectX etc. will feel at home with Canvas3D too. And that was certainly something I couldn't do justice to in the book if I tried to initiate someone to the world of 3D programming in general and canvas 3D in particular. I think Canvas3D and WebGl deserve a dedicated book to themselves perhaps more than one book series.
InfoQ: You mention HTML5 is going to evolve. What are some of the expected new features to show up as part of HTML5?
Aditya Yadav: Feature-wise HTML5 is more or less frozen. The actual specification of the standard implementation with guidelines for Browser Vendors is something which could change a bit. That is the context in which I said it is going to evolve. For example Opera implemented the Server Side Events specifications and then it got changed so they withdrew it from their browsers. We might see small changes like these before the HTML5 recommendation stage is reached.
InfoQ: Is there a feature you would personally like to see in HTML 5 but it is not yet included in the standard?
Aditya Yadav: One feature which I personally want to see in browsers is a peer to peer overlay with the web server as the super node. This would enable next generation collaborative applications to be written.
InfoQ: What are the differences between W3C and WHATWG HTML5 specifications? Which of these two specifications are the browsers actually implementing?
Aditya Yadav: I think HTML5 is a great effort. But one place where I see a lot of differences between browser vendors is the codecs implemented for audio/video features. While HTML5 specifies how audio/video tags work and the idea was to use patent free codecs like Theora/Vorbis/Ogg, most of us realize that they are not the best codecs. Somehow every browser vendor is choosing which codecs they are implementing which is going to create quite a bit of problems.
About the specs, yes, there is one both on WhatWG and W3C. WhatWG is an open community started by Google and other browser vendors. Both Specs are maintained by the same Lead who takes into account everything discussed/finalized on W3C and WhatWG. I personally haven't done a feature by feature comparison to check which specs browsers are implementing. But I hope it’s the W3C version. Both specs are quite similar and I would prefer all vendors implementing either one collectively so that we have truly interoperable HTML 5 applications. Look at the following links for pointers http://wiki.whatwg.org/wiki/FAQ#WHATWG_and_the_W3C_HTML_WG, http://www.itwriting.com/blog/2353-the-two-specifications-of-html-5-0-what-wg-vs-w3c.html.
About the Author
Aditya Yadav has been the CTO of one of the top 25 startups in India dealing with global scale real-time multimedia P2P products. He is also a technology and technology strategy consultant to fortune companies; he provides leadership coaching and architects world class engineering organizations for his clients. He can be reached even outside the context of this book through the author’s website.