So after a couple of weeks wrestling with Dojo, here are some pros and cons.
- Dojo does it all. OK. Maybe not, but Dojo handles natively what you would end up needing several plug-ins or custom code to accomplish in jQuery.
- Dojo only loads the code you need. You have complete control over which libraries are loaded and when.
- Built in parser. This is perhaps one of the nicest features of Dojo. One of the biggest headaches with jQuery is making sure code loaded via Ajax is initialized properly. live() will only get you so far. Dojo takes care of that for you.
- Excellent form widgets. Yes, jQueryUI has form widgets but Dojo has a more complete set and I prefer the functionality of Dojo over jQueryUI. My “Yes!” moment was when I discovered Dojo’s calendar input doesn’t disable the textfield like all the jQuery plug-ins I have tried. You want to just type in your birth date instead of clicking *mumble mumble* times to finally get back to your year? Go right ahead.
- Documentation. Like most open source projects documentation leaves much to be desired. Add to that that many tutorials and hints you can find on the web refer to older versions of Dojo and usually don’t apply any more. Even Dojo’s documentation has outdated information or links to pages that are missing. The Dojo folks know this is a huge shortcoming and are working on it, but in the meantime, this only exacerbates the learning curve.
So far I really like what Dojo can do, but the documentation issue has been a big one. I’ve wasted hours looking for answers to my questions only to find them when searching for something unrelated. So, I’ll try and document my adventures with Dojo here to hopefully save others from the headaches I’ve dealt with. As of this writing Dojo is on version 1.6.