Review of Programming HTML5 Applications

Disclaimer: this blog post is part of O’Reilly’s Blogger Review Program where you can get a free ebook or video to review in your blog or website. This doesn’t mean I’ll be less impartial on the content of the post, I’m just more serious about actually publishing it. I’d have bought the book and I’d have written this same text either way.

ImageHTML5 is probably the biggest update to HTML that I can remember. It merges the old SGML-based and XML-based representations of HTML into a consistent one. It brings MathML, SVG and accompanying CSS3; a new bunch of semantic tags improving form inputs, attributes, and document structure; and the APIs which make possible modern web apps (offline, local storage, web sockets, canvas…). However, the standard isn’t still closed.

Therefore, a book on HTML5 applications is a bit tricky to write. Not only there’s a large number of new components, they’re still a work in progress, and the range of web apps is now more diverse than before (remarkably, games).

“Programming HTML5 Applications” starts with a rather unique approach. It doesn’t give a lot of background on what brought HTML to this point. It doesn’t give a big overview of the main changes either. Instead, it goes straight into a technical introduction of Javascript programming and testing that lasts two full chapters (plus an extra appendix at the end). If you like this to the point approach you’ll like the book. If you were hopping for a higher-level introduction to the new standard you’ll be disappointed.

The rest of the book is dedicated to the main building blocks of HTML5. The content of each chapter is eminently practical, full of examples, and straightforward use of Javascript. I didn’t find problems reading and running the examples, they were simple enough and pretty self-contained (unlike other books where you build a huge monolithic app). As usual, if you find any errors there is an errata.

The parts I personally enjoyed more come right at the end where you get some examples of web workers and web sockets. The other components I was a bit more familiar with thanks to the now extinct Gears or other projects I’ve been involved. However getting a better understanding of workers (which it isn’t really multi-threading) and sockets (specially if you like the fancy Node.js) was definitely a plus. They’re gonna be an integral part of every new web app trying to mimic their desktop counterparts.

You may also wonder how complete the book is as compared to the current standard. I reviewed the W3C’s HTML5 differences from HTML4 and you can tell the book isn’t exhaustive, but I’d say the main components are there (local storage, off-line, IndexedDB, FileAPI, web workers, and web sockets) – it’ll depend on your specific needs. But the chapter on “new tags” (aka semantics) is left for the end and it’s too short (less than a page for SVG, Canvas, CSS, microdata, or geolocation isn’t enough).

Overall, I’m giving this book 4 out of 5 stars in Amazon. Please let me know if you have any questions or comments below, I’ll be happy to follow up.

Leave a comment