I’ve slaved away for the past 8 months or so writing a book on Dojo. It’s definitely not a lot of fun moonlighting for such an extended duration on a single project, but my hope is that it’s all going to be worth it when I am able to deliver what I believe will live up to the “definitive guide” standard that so many other O’Reilly books have delivered in the past. (Yes, that previous link shows that the book is titled Developing with Dojo, but it’s really just a placeholder. The book has since been retitled, there will be a different animal on the cover, etc.)

The fact that I’ve spent so long working on what’s essentially documentation of all things should tell you that I’m a huge Dojo advocate, but why did I like Dojo enough to spend hundreds and hundreds of hours writing a ~500 page book on it?

Here are some of the reasons that come to mind immediately:

  • Breadth and Depth - It includes a highly optimized JavaScript standard library that protects you from the bare metal of the browser and allows you to write portable code, a terrific set of widgets that you can drop right into the page, and build tools that you can use to compress and consolidate your JavaScript to squeeze as much performance out of it as possible. Those are really broad strokes, but hopefully you get the idea that it’s not just about widgets or just about DOM manipulation. It’s about creating a great user experience and necessarily includes a swath of stuff that helps you to make that happen.
  • Awesome Community - The help these people have given me in writing this book is nothing short of incredible. It’s kind of strange to “know” people for months and months via an IRC chat room and somehow feel like they’re your friends, but that’s the way it feels. It’s amazing to watch some of the most hard core committers in the project field some of the simplest questions that come up with grace and patience. (And believe me, I’ve come really close to starting a riot a few times in there.) Drop into #dojo on freenode.net if you ever want to see just how inviting the place really is.
  • Clean, liberal, licensing - This post does a great job of explaining, a lot better than I could right now, so have a look.
  • Pragmatic philosophy - It doesn’t try to re-invent JavaScript or build a brittle, artificial language on top of it. It embraces JavaScript for what it is, plugs holes where they need to be plugged, smooths a few things out here and there, and otherwise leaves the language alone.

Now, without starting a flame war, I’m curious about some things:

Have you tried to use Dojo in the past and gotten frustrated and dropped it for something else? If so, why (and what did you end up liking better?)

Would a solid book on Dojo have made a difference?

Have you started with another JavaScript toolkit but migrated to Dojo because the other one didn’t quite meet your needs? You don’t have to say which one you moved away from, but it would be interesting to know why you ended up moving to Dojo.