¿Qué ofrece Google Closure Library sobre jQuery? [cerrado]


Considerando

  • antecedentes comerciales
  • apoyo comunitario
  • extensiones disponibles
  • conjunto predeterminado de características
  • simplicidad de uso
  • y fiabilidad

¿Por qué prefiere uno sobre el otro?

Author: Maiku Mori, 2009-11-06

8 answers

Intentaré añadir mi información.

Más que otra JS lib

Según lo entiendo, Google Closure no es solo otra biblioteca JS, sino que también es un conjunto de herramientas que le permitirán optimizar su código JS. Trabajar con jQuery te da buenas herramientas y una biblioteca ligera, pero no minimiza tu propio código. El compilador de cierre lo hará. El inspector de cierre también puede ser útil, ya que a veces el código minificado tiene un comportamiento diferente al original, y es un dolor de depuración. Se integra con Firebug y admite pruebas unitarias, que son los mejores amigos de los desarrolladores hoy en día.

Documentación

Supongo que como cualquier biblioteca nueva VS una bien establecida, carecerá de la disponibilidad de toneladas de extensiones y tutoriales que tiene jQuery. Sin embargo, ser empujado por Google debería garantizar que el soporte y la confiabilidad sean bastante buenos. La documentación actual y el tutorial ambos parecen muy bueno, también.

Características

Sin embargo, las características del cierre se ven decentes, y su arquitectura modular también es prometedora. Supongo que Google lo ha estado usando internamente durante mucho tiempo, lo que significa que podría esperar que todas las características básicas (y más) se implementen, y probablemente de una manera muy optimizada y escalable. Están tratando de presentarlo como el STL de JavaScript, por lo que deberían haberlo pulido.

Después de mirar las características más de cerca, parece que esto puede ser un paso adelante para el desarrollo de aplicaciones web en comparación con las bibliotecas existentes como jQuery. Supongo que beneficia los desarrollos internos en Google, pero cosas como detectar el estado en línea (ver goog.evento.OnlineHandler ), fácil integración de solicitudes AJAX y acciones JS en el historial del navegador (ver goog.Historia), o las legiones de grandes widgets que proporcionan (ver goog.ui package) puede ayudarnos a todos a construir aplicaciones web aún más impresionantes;)!

It viene con características de plantillas que se integra con Java (¿quién dijo GWT?), por lo que esto también puede ser otra ventaja para el cierre.

Facilidad de uso

Finalmente, parece bastante simple de usar. La sintaxis puede ser un poco más detallada que la función corta $ jQuery, pero con IDEs y autocompletado, no es un problema real. Además, diría que podemos esperar una buena integración en IDEs como Eclipse, viniendo de Google.

EDITAR: como se solicitó, permítanme decir unas palabras sobre la referencia GWT. Google Web Toolkit es una biblioteca Java que permite crear interfaces web habilitadas para AJAX y que genera (y optimiza) el código JavaScript requerido. Como Google Closure permite crear Plantillas que se pueden usar tanto del lado cliente como del servidor (usando JavaScript y Java), mi conjetura es que pronto será posible usarlas conjuntamente (si no es el caso ya).

 177
Author: Wookai,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-09-26 08:21:50

En mi breve mirada a la API, encuentro que las diferencias entre jQuery y Closure son sorprendentes.

JQuery es básicamente solo una forma simplificada de hacer muchas operaciones frecuentes de forma cruzada de navegador.

Closure es un framework que es muy nuevo, ya que proporciona una forma cruzada de usar la etiqueta <canvas>, por ejemplo, y han agregado nuevos eventos.

Por lo tanto, esto se suma a lo que normalmente hacemos con javascript, están tomando muchas operaciones que la gente quiere hacer y ponerlos en la API.

Por ejemplo, tienen un evento para decir si el estado en línea ha cambiado. Para que pueda saber si el sistema está en línea.

Tienen funciones javascript que utilizan herramientas como Google Gears, lo que continúa con el hecho de que han ampliado lo que se puede hacer con Javascript.

Me llevará un par de días digerir todos los cambios, pero puedo ver que esto podría tener un gran impacto en las aplicaciones web que se pueden desarrollar.

 30
Author: James Black,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-11-08 02:47:27

La mayor ventaja de la Biblioteca de Cierre es que está diseñada para el compilador de cierre. Esto abre posibilidades completamente nuevas para el desarrollo de JavaScript...

El compilador tiene varias características interesantes:

  • Compila JavaScript legible en comprimido legible por máquina JavaScript-tiene la mejor relación de compresión en modo "AVANZADO".
  • Documentación del código con las etiquetas JSDoc es importante: el compilador lo lee y obtienes advertencias durante compilación de errores tipográficos en la documentación, el uso incorrecto de un @constructor, incorrecto tipo de a variable , mal uso de un campo anotado con @ privado y @ protegido, etc.
  • Si escribe un JavaScript reutilizable biblioteca, como OpenLayers o Google Maps, usted exporte formalmente su API pública - y el compilador optimiza su interno codificar.
  • Las aplicaciones finales pueden ser compilado junto con la biblioteca - y luego las partes no utilizadas de la biblioteca se eliminan de la producido codificar. Las dependencias se resuelven automáticamente por el compilador.
  • El compilador acepta constantes para eliminar funcionalidad no deseada-esto permite compilation only for particular navegador como Mobile WebKit, para solo uno de modo Peculiares o Estricto modo, compilación sin soporte de IE6, etc.
  • Depurar con FireBug es posible incluso para el compilado versión del código fuente.
  • El compilador soporta la generación de dinámicamente módulos cargables, que pueden acelerar significativamente la carga de el fin de la aplicación, porque el código para se puede cargar la funcionalidad avanzada solo cuando sea necesario.

Para más detalles, echa un vistazo a: http://blog.klokantech.com/2010/12/closure-compiler-for-openlayers-3x.html

 25
Author: Petr Pridal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-06-16 09:55:35

Edit : echa un vistazo a este video de youtube puede responder mejor a algunas preguntas sobre el cierre de Google.

Probablemente las mejores fuentes de información sobre el cierre de Google son project discussion group, wiki, doc pages, demos y un aún inacabado libro de Michael Bolin que ahora está disponible en el sitio safari books.

Una cosa que puedo decir de inmediato - hay una curva de aprendizaje más pronunciada para closure vs jQuery pero puede valer la pena debido a la inmensidad de la biblioteca, la organización clara y el beneficio de usarla junto con el compilador y la herramienta de plantillas.

closure biblioteca en ese sentido es más como dojo que jQuery, y algunos conceptos fueron tomados de dojo, según Michael Bolin.

Google closure compiler usa JSDoc el sistema de documentación que simultáneamente (si es creado por el programador correctamente) proporciona documentación y permite capturar muchos errores en tiempo de compilación.

Mientras los nombres de las funciones son más detallados que los de jQuery, el compilador reduce el código (usando varias tácticas de optimización) y la comprobación de tipos ahorrará un tiempo considerable para depurar el código, por lo que el tiempo para escribir los nombres más largos probablemente no sea un problema. Al mismo tiempo, los nombres más largos añaden legibilidad.

La biblioteca admite navegadores que se ejecutan en el modo quirks para que los scripts puedan ser incrustados por otros sitios utilizando html "peculiar"

La biblioteca funciona con (pero no depende de) un sistema de plantillas javascript llamado soy que simplifica el llenado de documentos con contenido.

Al igual que jQuery google closure permite atravesar la estructura dom con las consultas basadas en cadenas utilizando un componente dedicado de la biblioteca.

closure la biblioteca se basa en espacios de nombres delimitados por puntos, más como Java, una característica organizativa muy fuerte.

El uso de tales espacios de nombres incurrirá en sobrecarga en código sin compilar, pero en el código compilado esas cosas se reemplazan con una variable corta nombre.

 20
Author: Evgeny,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-06-16 02:38:34

Acabo de publicar un artículo bastante exhaustivo sobre el cierre de Google que responde a esta pregunta en insideRIA.

...Cierre rulez! ^_^

 8
Author: Davide Zanotti,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-04-22 18:30:11

Tal vez no estoy recibiendo jQuery, pero no he visto una colección real de widgets de interfaz de usuario allí (hay plugins, sí, pero nunca se sabe lo bien probados que son y, a menudo, no hay un ganador claro y/o el plugin carece de documentación).

Closure tiene, entre otras cosas, una colección de widgets (consulte la pestaña demos), que incluye, por ejemplo, botones sin imagen utilizados en gmail.

Más generalmente, tiene más funcionalidad implementada como parte de la versión. Puede que no sea un gran cosa, pero me molesta con el mar de plugins jQuery cuando estoy buscando algo tan simple como un módulo de historia ajax o autocompletar.

En general, es una gran biblioteca + conjunto de herramientas y voy a estar familiarizándome con él solo para saber lo que está disponible.

 7
Author: Nickolay,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 10:31:31

Aprecio la mayoría de las contribuciones de Google a la comunidad de código abierto y estoy seguro de que tiene algunas cosas interesantes, pero en general me parece un cierre voluminoso, sobreexcitado, y poco elegante. Si tienes que convertir todo en Java supongo que es francamente elegante.

Editar:

Bastante justo. Realmente no comparé. El cierre es como un almacén gigante con todas las herramientas posibles que pueda querer localizar... en alguna parte. Algo así como.NET o una enorme biblioteca Java. Una vez que encuentre lo que necesita, puedes encontrar cosas muy específicas que hacen trabajos muy específicos. Y luego para la producción se puede eliminar todo el cruft.

JQuery por otro lado, es más un destornillador sónico fácilmente modificado.

 1
Author: Erik Reppen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-12-07 05:49:17

La Biblioteca de Cierre de Google le permite compilar y optimizar su JavaScript. No es una biblioteca como lo es jQuery. jQuery es algo que te proporciona funciones que te permiten escribir tu propio javascript más rápido.

El cierre de Google le ayudaría a hacer su propio código javascript minimizado para permitir una entrega más rápida a través de Internet.

En resumen, Google Closure es una herramienta mientras que jQuery es una biblioteca similar a Prototype.

 0
Author: Tereno,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-11-06 21:25:26