This is the second book that Packt Publishing asked me to review for them. Once again, the content of the book is based on a JavaScript library. Learning Ext JS is designed as a gentle introduction into the world of Ext JS. Prior to this book, I had only really heard of Ext JS. I knew that it began as an extension of the YUI Library through my work with the team at Yahoo!, and I knew that it grew away from just being an extension and into its own library, but that was the extent of my knowledge and understanding. I expect that I am exactly the target audience for this bok: someone who understands web development and JavaScript but doesn’t know what Ext JS has to offer. And with that audience in mind, the book succeeds in fulfilling its purpose.

Right from the start, I was impressed with the writing of the book. The topics followed a natural progression that made it easy to understand where you came from and where you were going. The tone of the writing is conversational yet authoritative and most concepts are explained very well. Related topics, such as Ajax, are discussed succinctly and effectively so that the focus remains on the Ext JS library.

One of the most difficult things to do with a multi-author book is to maintain a high-level of quality and consistency throughout the book, but Learning Ext JS does an admirable job of smoothing out those rough edges. There are subtle tone and style shifts as chapters change from one topic to another, such as the notable increase in puns and wittiness in the middle chapters (for a good chuckle, focus on Chapter 8: Ext JS Does Grow on Trees), but the explanations are still just as clear regardless of which author is on the keyboard.

I really only have two complaints about this book. First, the authors incorrectly refer to object literal notation as JSON. JSON is a data format based on object literal notation in JavaScript, but it is not a part of the language. The descriptions surrounding this were a bit deceiving. Second, example code listing in several chapters were often too small. For instance, they would show just the object literal to configure the option being discussed without showing how that object should be used. I found myself flipping back to earlier examples frequently to get the context I needed to understand the later ones.

Perhaps the strangest part of the book is the introduction to Chapter 13, which inexplicably goes through the history of JavaScript and how Ajax restored it to the forefront of developers’ minds. The content that follows this introduction has little relevance to the introduction itself or vice-versa, so it seems quite misplaced.