Book review: Learning Dojo
I usually don’t do technical book reviews unless 1) I’m specifically asked or 2) I really like the book. I do this to avoid putting up too many bad book reviews because there are so many bad technical books out there. When I was contacted about reviewing Learning Dojo, I warned them that I have a very high level of expectation for technical books given that I’m an author. The company, Packt Publishing, said that they were interested in my honest opinion and so here it is.
This book is not good, that’s about as nicely as I can put it. There are numerous things that make the book a bad read. First, the author’s style is far too conversational, bordering on obnoxious at points. For example, when talking about object-oriented programming in JavaScript, arguably one of the most commonly misunderstood features of the language, the author declares, “This is not particularly complicated. It’s probably the most down-to-earth object oriented model you’ve heard of, and it mainly involves searching about for stuff” (p.31). He then goes on with a very terse description of prototypes before leaving the subject behind.
Another instance of inappropriate tone really got to me (p. 41):
This would in itself be kind of odd. I would really recommend to create your own widget when doing anything which will show up on the page as you get so much for free, but just for the sake of argument, let’s say that you don’t.
So he’s basically telling me to do something that he’d never recommend doing just “for the sake of argument?” What a waste of time. And don’t get me started about the run-on sentence.
Several other things really distract from learning Dojo. There is a constant shift in author voice, alternatingly referring to the reader as “you” and “we.” I really hate reading technical books that use “we,” but changing back and forth is very annoying.
The order of topics is very strange as well. There’s a mix of regular JavaScript topics and Dojo topics that don’t seem to follow any rhyme or reason. The introduction immediately throws you into the deep end with examples such as charting before backing out and going over the basic structure of Dojo and what you’d need to do to get the library on your page. The first chapter finishes with a description of the Dojo Foundation, what it does, and how it works.
The author seems confused about a lot of things. The first chapter indicates that you need a “modern web browser” such as IE 6, Firefox 1.5, or Safari 1.2.3. For being published in November 2008, you’d think that “modern” would have meant something more than that. He also at various points refers to Dojo as an “Ajax framework” and a “JavaScript library,” a little consistency would have been welcome. Another point of confusion comes when the author claims that JSON was, “first proposed by Douglas Crockford in the 3rd ECMAScript definition” (p. 54). This statement is, of course, completely incorrect. Yes, it was proposed by Crockford, but not in ECMA-262.
The general format of the book was a bit rough. I’m not sure if it was a lack of editing, but I found grammatical errors abound. There were also some code snippets that were just flat out incomplete and looked to be formatted incorrectly. All of this, combined with the strange tone I mentioned earlier, made the book very hard to follow
Overall, I was very disappointed with this book. The first few chapters made me want to stop reading. Don’t get me wrong, I did learn about Dojo, but not at the pace and in the manner that would help me. Learning Dojo
is a book with an identity problem. It doesn’t know whether it’s for JavaScript newbies who don’t know anything about the language or advanced users who already understand Ajax but want to learn about Dojo. The descriptions are all too general, without enough detail (such as the description to avoid including a comma after the last item in an object literal, he says just not to do it but never why). All of the topics I’d expect to be there are there, but are out of order and unrelated; everything seems very hastily thrown together. I was really looking forward to learning more about Dojo, but reading this book was more like trying to decipher a manual in another language than a guide to learning about the library. If you’re looking for a Dojo book, I’d pass this one over.