In the closing library
The Closure library is pretty close to Dojo in style - in fact, when it was first developed, the authors took inspiration from Dojo.
However, the speed and power of the Closure library was obtained from the Closure compiler, which pretty much optimizes the JavaScript program to remove all bottlenecks (for example, moving namespace chains).
I personally donβt like it, since it detracts from the beauty of the constructions of the Dojo class (just to satisfy the compiler), and all those goog.kitchen.sink.getMeACupOfTeaSoICanRelax() spaces long namespaces write (and read) JavaScript programs is a goog.kitchen.sink.getMeACupOfTeaSoICanRelax() pain that long namespaces are fully optimized by the compiler does not make it quite (for me) excessive use, because you can.
Furthermore, his obsession with trying to make JavaScript programs look as large as OOP (possibly because Google has a lot of Java programmers) means it is overly dependent on OOP concepts such as getters and seters properties, and avoiding many useful (and unique) ones JavaScript features like mixin's. If you are programming Java for JavaScript, you will be at home using the Closure library. This does not make it a little elegant.
However, it does offer industrial strength , which is solid , since Google built HUGE sites with it. This is what (in my personal opinion) is solid and works well, but looks ugly.
However, Dojo is also solid, but more volatile, as it is an open source development project. You decide if you want to switch.
In the Closure and Dojo compiler
Actually, you can also use Dojo with the Closure compiler in advanced mode. See this link for a description of how to do this. Based on my own tests, the program compiled by the Closure compiler is usually 25% smaller than the mini versions (due to elimination of dead code) and works 20-30% faster for simple pages and more for large pages.
About the speed of libraries in general
Other libraries have their own characteristics and quirks, as well as ease of use, flexibility and power in balance. For example, jQuery creates many jQuery objects in its path and has performance limitations, especially in older browsers. However, modern browsers, especially. Google Chrome actually does the optimization, so performance with jQuery is minimal.
You really need to ask yourself why you need JavaScript fast. Most modern browsers are already pretty fast, so this is really not very important for choosing a library. Itβs better to choose your library based on whether it suits you or not (and the task you are at hand right now) instead of whether it works 10 ms faster in the browser.
If you are writing a website for mobile devices or, for example, playing HTML5, you may need to compress the last drop of productivity (in games) and / or save as many resources as possible (on mobile devices). In such cases, I find that using Dojo and then compiling with the Closure Compiler gives one of the best combinations for such scenarios.