Category Archives: JavaScript

Book Review: Getting StartED with Dojo

imageOne of the clients that I’m working for is actively porting a large client/server application into JavaScript/Dojo.  The current application was several hundred thousand of lines of code in Java, XHTML, and JavaScript.

When finished, this will probably be the largest and most complex Dojo applications ever created.

The total sum of training received by the permanent team members consisted of a single class in JavaScript, and several shared copies of Peter Higgins’s book, Getting StartED with Dojo.

The consultants, of course, were not permitted any training, but when I saw this book being passed around, I purchased it for myself just to see what it contained.

Since I’ve read several other books on Dojo and this one was my third, I thought I would give my opinions on the book.  Overall, the text is an easy read, and the examples are extremely basic.  The author obviously took pains to explain the material.

However, be warned that some of the code examples are broken and won’t work.   As far as I’m aware, these haven’t been corrected, and there is only one edition of the book.  The book references Dojo 1.3; The current version is 1.7, but that really doesn’t matter considering what isn’t covered in the book – a lot of stuff.

The book is segmented into nine chapters.

The first two try to cover basic JavaScript.  If you guessed that teaching someone a dynamic language like JavaScript within the scope of two chapters would be a recipe for two poor chapters on JavaScript, congratulations! You guessed right and have now finished 1/4th the of the book.

Furthermore, the book is punctuated by blocks of text with headers like, “NotED,” “ExplainED,” and “LinkED.”  While other authors would write notes like these as a inset sidebar, this author injects them randomly throughout the text which is disturbing if you are reading on a Kindle.  While reading about a topic, injected within the middle is a block pointing towards a website, a note, or a reference to another chapter.  On the kindle, these can span a page or more.

At this point, I have to wonder if Peter Higgins hatED his English teacher, or just had a crush on someone with the initials E.D., with the kind of love that burns so hotly it must be stamped on books.  What does ED mean?  Erectile Dysfunction?  Only Higgins knows for sure.

The next chapters cover in detail: dojo.byId, dojo.query, dojo.forEach, dojo.filter, dojo.create, dojo.attr, dojo.style, dojo.connect, dojo events and listeners, dojo.fadeOut, dojo.FadeIn, animations, slides, and a few more tidbits.  To Higgins’s credit, he explains these concepts far better than anyone else.

Ajax is sparsely covered, but no server software or scripts are covered.  So in essence, it is only discussed.

The rest of the book discusses various topics, with few actual examples.  The last chapter entitled, “Where do you go from here?” has a few pages about ShrinkSafe, but doesn’t cover actually using it or setting up a custom build.

What it does not cover: the build system, building a custom version of Dojo, charting, the data grid control, any details about any of the widgets (calendars, pickers, etc), or the contents of DojoX.

Is this book the best book to learn Dojo?  Absolutely not, but it is an super easy introduction to get you started.  While it isn’t enough to implement a full blown Dojo app, it will give you just enough to start adding some widgets to your website.

I have to note, this would be a excellent book to throw at someone to get them stop asking you basic questions.  If you are a lead on a Dojo project and are assigned resources without any JavaScript/Dojo knowledge, I would hand them this book and tell them to tell me when they are done so I wouldn’t have to teach them Dojo from the ground up.  That in of itself makes it useful.

If you are motivated and can setup a simple LAMP stack, you can finish the book in two days, including typing in and debugging the examples.