Sunday, July 31, 2011

Review of Programming HTML5 Applications: Building Powerful Cross-Platform Environments in JavaScript by Zachary Kessin

rc_cat.gif

With the emergence of the popularity of HTML5 many books are quickly hitting the shelves. Here is an offering that provides both a high-level overview along with example code.

The first chapter, The Web as a Platform for Applications provides an historical backdrop for the HTML5 standard by reviewing the founding of the web, JavaScript’s history, the emergence of DHTML and AJAX, and laying of the ground work for the present environment.

The second chapter, The Power of JavaScript, reviews some nice aspects of the language such as functional programming,  closure, being able to expand objects, and functions with prototypes.

Chapter three, as the chapter title implies covers the JQuery, “a JavaScript Library that simplifies HTML document traversing, event handling, animating, and Ajax interactions for rapid web development.”

The next chapter details ExtJS. While ExtJS is another JavaScript library, this library provides more than a DOM manipulation and event handling. ExtJS has several objects that provide the developer with several tools to create rich internet applications. The chapter contains good content but still needs another “proof-reading pass” as there are several typos and even a “TODO” or two.Chapter 5 details using QUnit and Selenium to test JavaScript. This chapter provides good code examples using these two test frame works. Chapter 6 shows the developer how to use the browser’s localStorage and sessionStorage objects as well as consider browser-based databases.

The next chapter, Take it Offline,  deals with using HTML5’s new manifest file from which a user can load multiple files. Chapter 8, Splitting Up Work Through Web Workers, takes the reader through use of web workers to do, as the chapter title suggests, a division of tasks.

The reader is then brought to the topic of Web Sockets where bidirectional data can be established over TCP. Finally the chapter Internet, 2017 takes the user through the consideration of new and future technologies, of which HTML5 is a part.

In summary, while this book does provide a good overview of the above topics, it may not provide the detail that some developers desire. Also, at least in its early release stage, as of July 2011, the text shows many signs of a draft in progress with missing punctuation and various TODO’s sprinkled in some of the chapters. However, it does provide a quick and basic overview of the concepts and parts of HTML5 and JavaScript that are necessary to move forward.