What an absolute dog's dinner this book is! In "Smashing HTML5", Bill Sanders claims to be aiming at a hybrid market, targeting established users of browser-mediating mark-up languages who want to be brought up to speed with the new developments on offer within HTML5, whilst still presenting material with the beginner in mind. In his introduction, he states "HTML5 is so big I had to select a focus that would encompass the essence of the mark-up language without devolving into a mere reference or encyclopedia that attempted to touch on everything but explain nothing." Had he succeeding in this aim, this would have been a very valuable book indeed. Sadly, he singularly fails to achieve it.
I came to this book as a veteran developer of sites that use HTML4, XHTML, XML, XSLT, PHP, CSS, etc. I'm generally too busy using the web development tools in which I have developed skills over the years to want to spend too much time ogling the capabilities of products in development but I figured a 350-page glossy summary of the highlights of HTML5 should be pretty good at bringing me up to speed with its current state of play, and telling me, quickly and succinctly, what this new mark-up would offer me over and above the tools already at my disposal and why I would wish to adopt it.
Sadly, it does no such thing.
Nowhere, for instance, does it highlight any of the thinking that led to the development of HTML5, or how it attempts to draw the world towards a more orderly structuring of the information supplied to it through the web. Summaries of the main differences are thin on the ground and rarely prominent. Nor does it go into any real detail as to the intended role of some of the more potentially confusing new tags (such as <article>, say). So while the book carries a plethora of warnings about how Bad Things will happen to people who infringe the new HTML5 mark-up "rules", nowhere are the changed rules themselves actually explained, or the nature of the Bad Things made explicit. (Generally, there seems to be an implication that it will be toss-up between a knock on the door from the W3G Police, or a visit in the depths of the night from the Spaghetti Monster. It would be good know which, wouldn't it?) There is no mention of important technical considerations for those coming from HTML or XHTML backgrounds about to what extent HTML5 attempts to bridge these two different worlds, and what (if any) concessions HTML5 might make to the strictures of an XHTML context (for instance. Nothing fancy needed; a paragraph would have been enough.) Anyone looking for a quick summary of how HTML5 differs from other mark-up languages will be very frustrated by this book, which presents HTML5 solely as what it is in toto, with little or no reference to what it has inherited unaltered, what it changes, that established developers need to be aware of and what it has abandoned altogether from earlier versions. Established mark-up experts will learn more (and more quickly) for free from say, the W3Schools web pages.
Unfortunately, as a primer for the beginner, the book fails miserably, too. Rather than follow any real structure, it rambles moderately incoherently through a number of basic introductions to the sorts of things that HTML can be expected to deliver, although with endless asides, mostly made necessary by a lack of care in structuring the book. It is ironic in a book that stresses how important planning is in the construction of a successful web site, that the author constantly needs to dive off down side avenues in each chapter, in order to explain what, for many, will be irrelevant technical information, such as just what video codecs might be, or how to create movie files on a computer. Such explanations would probably be useful if they actually explained anything in detail, but sadly they all pull up short of being useful and more often than not leave the reader in the lurch with an inevitable "well, it's actually more complicated than that, but don't worry you don't really need to know about it" cop-out.
And heaven help any poor soul who is completely new to HTML (of any flavour) trying to learn to produce web pages with this book. If you've dabbled on the web already, it is possible more or less to keep up and follow along, and this book will give you a good overview of the new media tags that HTLM5 provides. But if you're new to all of this, be aware that some of the information in this book is over-simplified almost to the point of being wrong. It doesn't help, for instance, that the author cannot decide whether HTML pages should be termed scripts or programs. The fact that they are documents, and need to be considered as such (and only as such), seems to have passed him by completely. With that sort of thinking, there is no real wonder that the semantic web is further away from becoming a reality with each passing day. And as for his explanation of what the DOM is, well... bring on the Spaghetti Monster!