web-dev-qa-db-fra.com

Qu'est-ce que Google Closure Library offre sur jQuery?

Considérant

  • fond d'affaires
  • soutien de la communauté
  • extensions disponibles
  • ensemble de fonctionnalités par défaut
  • simplicité d'utilisation
  • et fiabilité

pourquoi préférez-vous les uns aux autres?

189
pestaa

Je vais essayer d'ajouter mon information.

Plus qu'un autre JS lib

Si j'ai bien compris, Google Closure n'est pas seulement une autre bibliothèque JS, il s'agit également d'un ensemble d'outils vous permettant d'optimiser votre code JS. Travailler avec jQuery vous donne de bons outils et une bibliothèque légère, mais cela ne minimise pas votre propre code. Le compilateur de fermeture volonté. Le inspecteur de fermeture peut également être utile, dans la mesure où le code minifié a un comportement différent de celui d'origine et complique le débogage. Il s'intègre avec Firebug et supporte les tests unitaires, qui sont aujourd'hui les meilleurs amis des développeurs.

Documentation

Je suppose que, comme toute nouvelle bibliothèque par rapport à une bibliothèque bien établie, jQuery n’aura pas accès à des tonnes d’extensions et de tutoriels. Cependant, être poussé par Google devrait garantir que le support et la fiabilité seront très bons. Les versions actuelles documentation et tutoriel semblent très bien aussi.

Traits

Les fonctionnalités de Closure semblent correctes, et son architecture modulaire est également prometteuse. J'imagine que Google l'utilise depuis longtemps en interne, ce qui signifie que vous pouvez vous attendre à ce que toutes les fonctionnalités de base (et plus) soient implémentées, et probablement de manière très optimisée et évolutive. Ils essaient de le présenter comme la STL de JavaScript, ils auraient donc dû le peaufiner.

Après avoir examiné les fonctionnalités de plus près, il semble que cela puisse représenter une avancée pour le développement d'applications Web par rapport aux bibliothèques existantes telles que jQuery. Il semble que cela profite aux développements internes de Google, mais détecte notamment l’état en ligne (voir goog.events.OnlineHandler ), l’intégration aisée de AJAX et actions JS dans l'historique du navigateur (voir goog.History ), ou les légions de grands widgets qu'ils fournissent (voir paquet goog.ui ) peut nous aider tous à créer des applications Web encore plus impressionnantes; )!

Il est livré avec fonctionnalités des modèles qui s'intègre avec Java (qui a dit GWT ?), cela peut aussi être un autre avantage pour la fermeture.

Facilité d'utilisation

Enfin, il semble assez simple à utiliser. La syntaxe est peut-être un peu plus détaillée que la fonction $ jQuery abrégée, mais avec les IDE et l'auto-complétion, ce n'est pas un réel problème. De plus, je dirais que nous pouvons nous attendre à une bonne intégration dans des environnements de développement intégrés tels que Eclipse, provenant de Google.

EDIT: comme demandé, permettez-moi de dire quelques mots sur la référence GWT. Google Web Toolkit est une bibliothèque Java qui permet de créer des interfaces Web prenant en charge AJAX et qui génère (et optimise) le code JavaScript requis. Comme Google Closure permet de créer des modèles pouvant être utilisés à la fois par le client - et côté serveur (avec JavaScript et Java), je suppose qu’il sera bientôt possible de les utiliser conjointement (si ce n’est pas déjà le cas).

176
Wookai

Dans mon bref aperçu de l'API, les différences entre jQuery et Closure sont frappantes.

jQuery n’est fondamentalement qu’un moyen simplifié d’effectuer de nombreuses opérations fréquentes sur plusieurs navigateurs.

Closure est un framework très nouveau, en ce sens qu’il fournit un moyen multi-navigateur d’utiliser le <canvas> tag, par exemple, et ils ont ajouté de nouveaux événements.

Donc, cela ajoute à ce que nous faisons généralement avec javascript, ils effectuent de nombreuses opérations que les gens veulent faire et les insèrent dans l'API.

Par exemple, ils ont un événement pour dire si l'état en ligne a changé. Vous pouvez donc savoir si le système est en ligne.

Ils ont des fonctions javascript qui utilisent des outils tels que Google Gears, ce qui continue avec le fait qu’ils ont étendu ce qui peut être fait avec Javascript.

Il me faudra quelques jours pour assimiler tous les changements, mais je vois bien que cela pourrait avoir un impact important sur les applications Web pouvant être développées.

30
James Black

Le plus grand avantage de Closure Library est qu’il est conçu pour Closure Compiler. Cela ouvre de nouvelles possibilités pour le développement de JavaScript ...

Le compilateur a plusieurs fonctionnalités intéressantes:

  • Il compile JavaScript lisible en JavaScript compressé lisible par machine - il a le meilleur taux de compression en mode "AVANCÉ".
  • La documentation du code avec les balises JSDoc est importante: le compilateur le lit et vous obtenez des avertissements lors de la compilation des fautes de frappe dans la documentation, une mauvaise utilisation de @constructor, un type incorrect d'une variable , mauvaise utilisation d'un champ annoté avec @private et @protected, etc.
  • Si vous écrivez une bibliothèque JavaScript réutilisable, telle qu'OpenLayers ou Google Maps, vous exportez formellement votre API publique - et le compilateur optimise votre code interne.
  • Les applications finales peuvent être compilées avec la bibliothèque. Les parties non utilisées de la bibliothèque sont ensuite supprimées du code produit. Les dépendances sont résolues automatiquement par le compilateur.
  • Le compilateur accepte les constantes pour supprimer les fonctionnalités non désirées - cela permet la compilation uniquement pour des navigateurs particuliers tels que Mobile WebKit, pour un seul des modes Quirks ou Strict, la compilation sans la prise en charge de IE6, etc.
  • Le débogage avec FireBug est possible même pour la version compilée du code source.
  • Le compilateur prend en charge la génération de modules chargeables de manière dynamique, ce qui peut considérablement accélérer le chargement de l'application finale, car le code des fonctionnalités avancées ne peut être chargé que lorsque cela est nécessaire.

Pour plus de détails, consultez: http://blog.klokantech.com/2010/12/closure-compiler-for-openlayers-3x.html

25
Petr Pridal

Modifier : jetez un coup d'œil à cette vidéo sur youtube Cela répondra peut-être mieux à certaines questions sur la fermeture de Google.

Les meilleures sources d’information sur la fermeture de Google sont probablement le projet groupe de discussion , les pages de wiki, de doc, les démos et encore inachevé livre de Michael Bolin qui est maintenant disponible sur le site des livres de safari. .

une chose que je peux dire tout de suite - la courbe d’apprentissage pour closure par rapport à jQuery est plus abrupte, mais elle en vaut peut-être la peine en raison de l’immensité de la bibliothèque, de son organisation claire et de l’avantage de l’utiliser ensemble. avec le compilateur et l’outil de modélisation.

La bibliothèque closure à cet égard ressemble plus à dojo que jQuery, et certains concepts ont été empruntés à dojo, selon Michael Bolin.

le compilateur de Google clôture utilise le système de documentation JSDoc qui simultanément (si créé correctement par le programmeur) fournit une documentation et permet de détecter de nombreuses erreurs au moment de la compilation.

alors que les noms de fonctions sont plus explicites que ceux de jQuery, le compilateur réduit le code (en utilisant diverses tactiques d'optimisation) et la vérification du type fera gagner un temps considérable au débogage du code, de sorte que le temps de saisie des noms plus longs n'est probablement pas un problème. En même temps, des noms plus longs ajoutent de la lisibilité.

la bibliothèque prend en charge les navigateurs fonctionnant en mode quirks, de sorte que les scripts puissent être incorporés par d’autres sites à l’aide de HTML "décalé".

la bibliothèque fonctionne avec (mais ne dépend pas de) un système de templates javascript appelé soy qui simplifie le remplissage de documents avec du contenu.

comme jQuery google closure permet de parcourir la structure dom avec les requêtes basées sur des chaînes à l'aide d'un composant dédié de la bibliothèque.

La bibliothèque closure s'appuie sur des espaces de noms délimités par des points, plus proches de Java - une fonctionnalité très puissante de l'organisation.

l'utilisation de tels espaces de noms entraînera une surcharge dans le code non compilé, mais dans le code compilé, ces éléments sont remplacés par des noms de variables courts.

20
Evgeny

Je viens de poster un article assez complet sur Google Closure qui répond à cette question sur insideRIA .

... Fermeture rulez! ^ _ ^

8
Davide Zanotti

Je ne reçois peut-être pas jQuery, mais je n'ai pas vu de collection de widgets d'interface utilisateur réelle (il existe des plugins, oui, mais vous ne savez jamais à quel point ils sont bien testés et souvent, il n'y a pas de gagnant clair et/ou le plugin manque. Documentation).

La fermeture a, entre autres choses, ne collection de widgets (voir l'onglet démos), y compris, disons, boutons sans image utilisés dans gmail.

Plus généralement, plus de fonctionnalités sont implémentées dans la version. Ce n'est peut-être pas une grosse affaire, mais la mer de plugins jQuery m'énerve quand je cherche quelque chose d'aussi simple qu'un module d'historique ajax ou de saisie semi-automatique.

Globalement, c'est une bibliothèque énorme + un ensemble d'outils et je vais me familiariser avec elle simplement pour savoir ce qui est disponible.

7
Nickolay

J'apprécie la plupart des contributions de Google à la communauté open source et je suis sûr qu'il contient des informations intéressantes, mais dans l'ensemble, je trouve que Closure est volumineux, surmené et inélégant. Si vous devez tout transformer en Java je suppose que c'est tout à fait spiffy.

Modifier:

C'est suffisant. Je n'ai pas vraiment comparer. La fermeture est comme un entrepôt géant avec tous les outils possibles que vous pourriez souhaiter localiser… quelque part. Un peu comme .NET ou une bibliothèque massive Java. Une fois que vous avez trouvé ce dont vous avez besoin, vous pouvez trouver des éléments très spécifiques qui effectuent des travaux très spécifiques. Ensuite, pour la production, vous pouvez supprimer tous les problèmes.

JQuery, d’autre part, est plutôt un tournevis sonique facilement modifié.

1
Erik Reppen

La bibliothèque Google Closure vous permet de compiler et d'optimiser votre JavaScript. Ce n'est pas une bibliothèque comme jQuery. jQuery est quelque chose qui vous fournit des fonctions qui vous permettent d'écrire votre propre javascript plus rapidement.

Google Closure vous aiderait à minimiser votre propre code javascript afin de permettre une diffusion plus rapide sur Internet.

En résumé, Google Closure est un outil tandis que jQuery est une bibliothèque similaire à Prototype.

0
Tereno