Being new to web development, jQuery was the first JavaScript library I worked with. However, the extent of usage was limited to my personal, largely recreational projects. However, I recently decided to use the Dojo toolkit for a new project at my day job. Here is why I decided to do so and why I am happy with my decision.

Single, Unified Library For Ajax, UI Widgets, Grids and Charts

This was probably the most compelling reason to use this library. Everything I needed was in a single, well
thought out library. This is not to say that all of these features are not possible with jQuery. However, if
I were to achieve this with jQuery, it would be by stitching together quite a few disjointed plug-ins.

I’ve enjoyed the richness of the UI widgets and the Layout containers. All widgets and layouts can be laid
down either declaratively or programatically. The choice of form widgets is much richer than JQuery. I’ve really enjoyed the various variety of various Text Boxes and several other thoughtful widgets like the Busy Button.

All of these features make my webapp look very slick and consistent. My end users complement me on the look and feel quite a lot.

AMD Based Standard Modular JavaScript Format

Dojo’s own code is modularized using AMD. It dynamically loads only whats needed. There is no need to decide what you may need before setting up the project. Which mean there is no need to use a tool to generate a minified js file or the need to compile a new one if you decided that you needed that feature after all.

However, what’s great is that you can use AMD to modularized your own JavaScript code as well. Maybe this is due to my lack of experience, but I always found writing JavaScript code with jQuery very haphazard and disorganized. I’m sure its possible to organize yourself with jQuery, but AMD provided me with an already well thought out way to modularize my code.

Separation Of Concern

Dojo has a lot of build in infrastructure to make it easy to write code with separation of concern in mind. For Example, it has a lot of data store classes to separate data from how you want to view it. The same store can be used to generate a data grid or a cart. The store can be based on in-memory data or a JSON service. It all fits together pretty well.

Rich Collection of Tutorials and Documentation

Dojo’s got an extensive collection of tutorials on almost all important aspects of the toolkit. All tutorials are accompanied with examples that can be run and tested right on the spot. The same it true for the API documentation. Now, this is important, because this documentation spans everything. For me at least, this is much better than using jQuery and several plug-ins, with several different sources of documentation and several levels of documenting quality.

Conclusion

Although its been a pleasure using Dojo, I don’t believe that I’ll simply stop using jQuery. Dojo worked out great when writing an internal enterprise application. The jQuery library is still much simpler to learn and use. There also seem to be more creative plugins available for jQuery e.g the jQuery Masonary plugin.

Hence, if you’re writing an enterprise level application, use Dojo. If you’re looking to write the next Pinterest or Facebook, jQuery might have more interesting options.