provide google goog compiler closure jquery google-closure google-closure-library

compiler - ¿Qué ofrece Google Closure Library sobre jQuery?



goog provide (8)

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

... cierre rulez! ^ _ ^

Considerando

  • conocimiento de los negocios
  • soporte comunitario
  • extensiones disponibles
  • conjunto predeterminado de características
  • simplicidad de uso
  • y confiabilidad

¿Por qué prefieres uno sobre el otro?


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 que el cierre es voluminoso, excesivo y poco elegante. Si debes convertir todo en Java, supongo que es francamente elegante.

Editar:

Lo suficientemente justo. Realmente no comparé El cierre es como un almacén gigante con todas las herramientas posibles que pueda desear ubicar ... en algún lugar. Algo así como .NET o una biblioteca masiva de Java. Una vez que encuentre lo que necesita, puede encontrar cosas altamente específicas que realizan trabajos altamente específicos. Y luego para la producción puedes quitar todo el cruft.

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


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

jQuery es básicamente una forma simplificada de realizar muchas operaciones frecuentes en un navegador cruzado.

El cierre es un marco muy nuevo, ya que proporcionan una forma de navegador cruzado para usar la etiqueta <canvas> , por ejemplo, y han agregado nuevos eventos.

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

Por ejemplo, tienen un evento para indicar si el estado en línea ha cambiado. Así que puedes saber si el sistema está en línea.

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

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


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

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

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


Intentaré añadir mi información.

Más que otro JS lib

Como lo entiendo, Google Closure no es solo otra biblioteca de JS, sino que también es un conjunto de herramientas que le permitirán optimizar su código JS. Trabajar con jQuery te brinda buenas herramientas y una biblioteca liviana, 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 problema depurar. Se integra con Firebug y las pruebas de unidades de soporte, que son los mejores amigos de ambos desarrolladores en la actualidad.

Documentación

Supongo que, como cualquier biblioteca nueva VS 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 tanto el soporte como la confiabilidad sean bastante buenos. La documentation actual y el tutorial también parecen muy buenos.

Caracteristicas

Sin embargo, las características de Closure parecen decentes, y su arquitectura modular también es prometedora. Supongo que Google lo ha estado utilizando internamente durante mucho tiempo, lo que significa que puede esperar que se implementen todas las funciones básicas (y más), 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 observar 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.events.OnlineHandler ), la fácil integración de las solicitudes AJAX y las acciones de JS en el historial del navegador (ver goog.History ), o las legiones de grandes widgets proporcionan (ver el paquete goog.ui ) puede ayudarnos a todos a crear webapps aún más impresionantes;)!

Incluye características de plantillas que se integran con Java (¿quién dijo GWT ?), Por lo que 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 de $ jQuery, pero con los IDE y la finalización automática, no es un problema real. Además, diría que podemos esperar una buena integración en IDE como Eclipse, proveniente de Google.

EDITAR: según lo solicitado, permítanme decir algunas palabras sobre la referencia GWT. Google Web Toolkit es una biblioteca de 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 pueden usarse tanto del lado del cliente como del servidor (usando JavaScript y Java), supongo que pronto será posible usarlas conjuntamente (si no es el caso).


La mayor ventaja de Closure Library es que está diseñado para Closure Compiler. Esto abre posibilidades completamente nuevas para el desarrollo de JavaScript ...

El compilador tiene varias características interesantes:

  • Compila JavaScript legible en JavaScript legible por máquina comprimida, tiene la mejor relación de compresión en modo "AVANZADO".
  • La documentación del código con etiquetas JSDoc es importante: el compilador lo lee y recibe advertencias durante la compilación de errores tipográficos en la documentación, uso incorrecto de un @constructor, tipo incorrecto de una variable , uso incorrecto de un campo anotado con @private y @protected, etc.
  • Si escribe una biblioteca de JavaScript reutilizable, como OpenLayers o Google Maps, exporta formalmente su API pública y el compilador optimiza su código interno.
  • Las aplicaciones finales se pueden compilar junto con la biblioteca, y luego las partes no utilizadas de la biblioteca se eliminan del código producido. Las dependencias son resueltas automáticamente por el compilador.
  • El compilador acepta constantes para eliminar la funcionalidad no deseada: esto permite la compilación solo para un navegador en particular, como Mobile WebKit, para solo uno de los modos Quirks o Strict, compilación sin soporte de IE6, etc.
  • La depuración con FireBug es posible incluso para la versión compilada del código fuente.
  • El compilador admite la generación de módulos que se pueden cargar dinámicamente, lo que puede acelerar significativamente la carga de la aplicación final, ya que el código para la funcionalidad avanzada solo se puede cargar cuando sea necesario.

Para obtener más información, consulte: http://blog.klokantech.com/2010/12/closure-compiler-for-openlayers-3x.html


Tal vez no esté obteniendo jQuery, pero no he visto una colección real de widgets de UI allí (hay complementos, sí, pero nunca se sabe cuán bien probados están y, a menudo, no hay un ganador claro y / o falta el complemento documentación).

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

Más generalmente, tiene más funcionalidad implementada como parte del lanzamiento. Puede que no sea una gran cosa, pero me molesta con el mar de los complementos de jQuery cuando busco algo tan simple como un módulo de historial ajax o autocompletar.

En general, es una gran biblioteca + un conjunto de herramientas y me familiarizaré con ella solo para saber qué hay disponible.


Editar : eche un vistazo a este video de YouTube y puede responder mejor algunas preguntas sobre Google Closure.

Probablemente las mejores fuentes de información sobre el cierre de Google son el grupo de discusión del proyecto, wiki, páginas de documentos, demostraciones y un libro aún sin terminar de Michael Bolin que ahora está disponible en el sitio de libros de safari.

Una cosa puedo decir de inmediato: hay una curva de aprendizaje más pronunciada para el closure frente a 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 de closure en ese sentido es más parecida al dojo que a jQuery , y algunos conceptos fueron tomados del dojo , según Michael Bolin.

El compilador de cierre de Google utiliza el sistema de documentación JSDoc que, al mismo tiempo (si el programador lo creó correctamente) proporciona documentación y permite detectar muchos errores en el momento de la compilación.

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

la biblioteca es compatible con los navegadores que se ejecutan en el modo de peculiaridades, de modo que otros sitios pueden incrustar scripts mediante el uso de 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 closure google permite atravesar la estructura de dominio con las consultas basadas en cadenas utilizando un componente dedicado de la biblioteca.

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

el uso de dichos espacios de nombres incurrirá en gastos generales en el código no compilado, pero en el código compilado esas cosas se reemplazan con nombres de variables cortos.