Что предлагает библиотека Google Closure по сравнению с jQuery?
Принимая во внимание
- бизнес фон
- поддержка сообщества
- доступные расширения
- набор функций по умолчанию
- простота использования
- и надежность
почему ты предпочитаешь одно другому?
8 ответов
Я постараюсь добавить свой кусок информации.
Больше чем другая библиотека JS
Насколько я понимаю, Google Closure - это не только еще одна библиотека JS, но также набор инструментов, которые позволят вам оптимизировать код JS. Работа с jQuery дает вам хорошие инструменты и легковесную библиотеку, но она не уменьшает ваш собственный код. Компилятор закрытия будет. Инспектор замыканий также может быть полезен, поскольку иногда минимизированный код ведет себя не так, как исходный, и его сложно отладить. Он интегрируется с Firebug и поддерживает юнит-тесты, которые в настоящее время являются лучшими друзьями разработчиков.
Документация
Я предполагаю, что, как и любая новая библиотека VS, хорошо зарекомендовавшая себя, ей будет не хватать тонны расширений и учебников, которые есть у jQuery. Однако поддержка со стороны Google должна гарантировать, что поддержка и надежность будут достаточно хорошими. Текущая документация и учебник тоже кажутся действительно хорошими.
Характеристики
Однако функции Closure выглядят достойно, и его модульная архитектура также многообещающая. Я предполагаю, что Google давно использует его для внутреннего использования, а это значит, что вы можете ожидать, что все основные функции (и даже больше) будут реализованы, и, вероятно, очень оптимизированным и масштабируемым образом. Они пытаются представить его как STL JavaScript, поэтому им следовало бы его отточить.
Если присмотреться к функциям поближе, кажется, что это может стать шагом вперед для разработки веб-приложений по сравнению с существующими библиотеками, такими как jQuery. Предполагается, что это приносит пользу внутренним разработкам в Google, но такие вещи, как обнаружение состояния в сети (см. Goog.events.OnlineHandler), простая интеграция запросов AJAX и действий JS в историю браузера (см. Goog.History) или легионы отличных виджетов. они предоставляют (см. пакет goog.ui) могут помочь всем нам создавать еще более крутые веб-приложения;)!
Он поставляется с функциями шаблонов, которые интегрируются с Java (кто сказал GWT?), Так что это также может быть еще одним плюсом для Closure.
Простота использования
Наконец, это выглядит довольно просто в использовании. Синтаксис может быть немного более подробным, чем у короткой функции $ jQuery, но с IDE и автозаполнением это не является реальной проблемой. Более того, я бы сказал, что мы можем ожидать хорошей интеграции в IDE, таких как Eclipse, от Google.
РЕДАКТИРОВАТЬ: в соответствии с просьбой, позвольте мне сказать несколько слов о GWT ссылки. Google Web Toolkit - это библиотека Java, которая позволяет создавать веб-интерфейсы с поддержкой AJAX и генерирует (и оптимизирует) требуемый код JavaScript. Поскольку Google Closure позволяет создавать шаблоны, которые могут использоваться как на стороне клиента, так и на стороне сервера (с использованием JavaScript и Java), я предполагаю, что вскоре станет возможным использовать их совместно (если это еще не так).
В моем кратком обзоре API я нахожу различия между jQuery и Closure.
jQuery - это просто упрощенный способ выполнения многих частых операций в кросс-браузерном режиме.
Закрытие является очень новой структурой, поскольку она обеспечивает кросс-браузерный способ использования <canvas>
тег, например, и они добавили новые события.
Итак, это добавление к тому, что мы обычно делаем с javascript, они берут много операций, которые люди хотят сделать, и помещают их в API.
Например, у них есть событие, чтобы сказать, изменилось ли онлайн-состояние. Таким образом, вы можете сказать, если система в сети.
У них есть функции javascript, которые используют такие инструменты, как Google Gears, что продолжается тем, что они расширили то, что можно сделать с помощью Javascript.
Мне понадобится несколько дней, чтобы переварить все изменения, но я вижу, что это может оказать большое влияние на веб-приложения, которые могут быть разработаны.
Самым большим преимуществом Closure Library является то, что он предназначен для Closure Compiler. Это открывает совершенно новые возможности для разработки JavaScript...
Компилятор имеет несколько интересных функций:
- Он компилирует читаемый JavaScript в сжатый машиночитаемый JavaScript - у него самая лучшая степень сжатия в режиме "ADVANCED".
- Важно документировать код с помощью тегов JSDoc: компилятор читает его, и вы получаете предупреждения во время компиляции для опечаток в документации, неправильного использования @constructor, неправильного типа переменной, неправильного использования поля, аннотированного @private и @protected, и т.п.
- Если вы пишете многократно используемую библиотеку JavaScript, такую как OpenLayers или Google Maps, вы официально экспортируете свой общедоступный API - и компилятор оптимизирует ваш внутренний код.
- Конечные приложения могут быть скомпилированы вместе с библиотекой, а затем неиспользуемые части библиотеки удалены из созданного кода. Зависимости решаются автоматически компилятором.
- Компилятор принимает константы для удаления нежелательных функций - это позволяет выполнять компиляцию только для определенного браузера, такого как Mobile WebKit, только для одного из режимов Quirks или Strict, компиляции без поддержки IE6 и т. Д.
- Отладка с помощью FireBug возможна даже для скомпилированной версии исходного кода.
- Компилятор поддерживает генерацию динамически загружаемых модулей, что может значительно ускорить загрузку конечного приложения, поскольку код для расширенной функциональности может быть загружен только тогда, когда это требуется.
Для получения дополнительной информации посмотрите на: http://blog.klokantech.com/2010/12/closure-compiler-for-openlayers-3x.html
Изменить: посмотрите это видео на YouTube, оно может лучше ответить на некоторые вопросы о Google Closure.
Вероятно, лучшими источниками информации о закрытии Google являются дискуссионная группа проекта, вики, страницы документов, демоверсии и еще не законченная книга Майкла Болина, которая теперь доступна на сайте книг по сафари.
Одна вещь, которую я могу сказать сразу - есть более крутая кривая обучения closure
против jQuery
но это может стоить того из-за обширной библиотеки, четкой организации и преимуществ использования ее вместе с компилятором и инструментом шаблонов.
closure
библиотека в этом отношении больше похожа dojo
чем jQuery
и некоторые понятия были заимствованы из dojo
По словам Михаила Болина.
компилятор Google закрытие использует JSDoc
система документации, которая одновременно (если она создана программистом правильно) предоставляет документацию и позволяет отлавливать множество ошибок во время компиляции.
в то время как имена функций более многословны, чем jQuery
Таким образом, компилятор сокращает код (используя различные тактики оптимизации), а проверка типов сэкономит значительное время при отладке кода, поэтому время ввода более длинных имен, вероятно, не является проблемой. В то же время более длинные имена добавляют читабельность.
библиотека поддерживает браузеры, работающие в режиме причуд, так что сценарии могут быть встроены другими сайтами с использованием "необычного" HTML
библиотека работает с (но не зависит от) системой шаблонов JavaScript, называемой soy
что упрощает наполнение документов контентом.
лайк jQuery
Google closure
позволяет обходить структуру dom с помощью строковых запросов, используя выделенный компонент библиотеки.
closure
библиотека опирается на пространства имен, разделенные точками Java
- очень сильная организационная особенность.
использование таких пространств имен повлечет за собой издержки в не скомпилированном коде, но в скомпилированном коде эти вещи заменяются короткими именами переменных.
Я только что опубликовал довольно исчерпывающую статью о Google Closure, которая отвечает на этот вопрос на InsideRIA.
... закрытие рулез! ^_^
Может быть, я не получаю jQuery, но я не видел реальной коллекции виджетов UI (есть плагины, да, но вы никогда не знаете, насколько хорошо они протестированы, и часто нет явного победителя и / или не хватает плагина) документация).
У Closure есть, помимо прочего, коллекция виджетов (см. Вкладку "Демо"), в том числе, скажем, кнопки без изображений, используемые в gmail.
В более общем плане, он имеет больше функциональности, реализованной как часть релиза. Это может быть не так уж и важно, но меня раздражает море плагинов jQuery, когда я ищу что-то такое простое, как модуль истории ajax или автозаполнение.
В целом, это огромная библиотека + набор инструментов, и я буду знакомиться с ней, просто чтобы узнать, что доступно.
Я ценю большую часть вклада Google в сообщество разработчиков ПО с открытым исходным кодом, и я уверен, что у него есть кое-что классное, но в целом я считаю Closure громоздким, перегруженным и не элегантным. Если вам нужно все превратить в Java, я полагаю, что это просто элегантно.
Редактировать:
Справедливо. Я действительно не сравнивал. Закрытие похоже на гигантский склад со всеми возможными инструментами, которые вы могли бы захотеть найти... где-то Вроде как.NET или массивная библиотека Java. Как только вы найдете то, что вам нужно, вы можете найти очень специфические вещи, которые выполняют очень специфические работы. И тогда для производства вы можете убрать всю грязь.
С другой стороны, JQuery - это более легко модифицируемая звуковая отвертка.
Библиотека Google Closure позволяет компилировать и оптимизировать ваш JavaScript. Это не библиотека, как JQuery. jQuery - это то, что предоставляет вам функции, которые позволяют вам быстрее писать свой собственный javascript.
Google Closure поможет свести к минимуму ваш собственный код JavaScript, чтобы обеспечить более быструю доставку через Интернет.
Короче говоря, Google Closure - это инструмент, а jQuery - это библиотека, похожая на Prototype.