On Closure Library
Closure Library очень близка по стилю к Dojo - фактически, когда она была впервые разработана, авторы черпали вдохновение из Dojo.
Однако скорость иМощь библиотеки Closure была заложена в компиляторе Closure, который сильно оптимизирует JavaScript-программу для устранения всех узких мест (таких как навигация по цепочкам пространств имен).
Лично мне это не нравитсяэто умаляет красоту основанных на классах конструкций Dojo (просто для удовлетворения компилятора), и все эти длинные пространства имен goog.kitchen.sink.getMeACupOfTeaSoICanRelax()
делают написание (и чтение) программ JavaScript огромной болью - тот факт, что длинные пространства имен оптимизируются благодарякомпилятор не делает это слишком (для меня) чрезмерным их использованием, потому что вы можете .
Кроме того, он одержим попыткой заставить программы JavaScript выглядеть как можно больше ООП (возможно, потому чтотонны Java-программистов в Google) означает чрезмерную зависимость от концепций ООП, таких какметоды получения и установки свойств и избежание многих полезных (и уникальных) функций JavaScript, таких как mixin's.Если вы Java-программист, изучающий программирование на JavaScript, вы будете чувствовать себя как дома, используя Closure Library.Это не делает его немного элегантным.
Тем не менее, он предлагает промышленную мощь среду, которая является надежной - так как Google построил ОГРОМНЫЕ сайтов с ним.Это то, что (по моему личному мнению) является надежным и хорошо работает, но выглядит некрасиво.
Тем не менее, Dojo также надежен, но более волатилен, поскольку это проект с открытым исходным кодом.Вы сами решаете, хотите ли вы переключиться.
На компиляторе Closure и Dojo
На самом деле вы можете использовать Dojo с компилятором Closure в расширенном режиме.См. эту ссылку для описания того, как это сделать.Исходя из моих собственных тестов, программа, скомпилированная компилятором Closure, обычно примерно на 25% меньше, чем минимизированные версии (из-за устранения мертвого кода), и работает на 20-30% быстрее для простых страниц и больше для больших страниц.
Скорость работы библиотек в целом
Все остальные библиотеки имеют свои особенности и особенности, каждая из которых сочетает в себе удобство использования, гибкость и мощность с производительностью.Например, jQuery создает много объектов jQuery в пути и снижает производительность, особенно в старых браузерах.Тем не менее, современные браузеры, особенно.Google Chrome, на самом деле, выполняет оптимизацию, так что снижение производительности при использовании jQuery минимально.
Вам действительно нужно спросить себя почему вам нужен JavaScript для быстрой работы.Большинство современных браузеров уже достаточно быстрые, так что это действительно не очень важно при выборе библиотеки.Лучше выбирать свою библиотеку в зависимости от того, подходит она вам или нет (и под рукой), а не от того, работает ли она в браузере на 10 мс быстрее.
Если вы пишете веб-сайт для мобильных устройств,или, например, при написании HTML5-игры вам может понадобиться выжать последнее падение производительности (в играх) и / или сэкономить как можно больше ресурсов (в мобильных устройствах).В таких случаях я обнаружил, что использование Dojo, а затем компиляция с помощью Closure Compiler дает одну из лучших комбинаций для таких сценариев.