Considérant
- fond d'affaires
- soutien communautaire
- extensions disponibles
- ensemble de fonctionnalités par défaut
- simplicité d'utilisation
- et fiabilité
pourquoi préférez-vous l'un à l'autre?
Considérant
pourquoi préférez-vous l'un à l'autre?
Réponses:
Je vais essayer d'ajouter mon élément d'information.
Si je comprends bien, Google Closure n'est pas seulement une autre bibliothèque JS, mais c'est aussi un ensemble d'outils qui vous permettront d'optimiser votre code JS. Travailler avec jQuery vous donne de bons outils et une bibliothèque légère, mais cela ne réduit pas votre propre code. Le compilateur Closure le fera. L' inspecteur de fermeture peut également être utile, car le code minifié a parfois un comportement différent de celui d'origine et est difficile à déboguer. Il s'intègre à Firebug et prend en charge les tests unitaires, qui sont aujourd'hui les meilleurs amis des développeurs.
Je suppose que comme toute nouvelle bibliothèque VS une bibliothèque bien établie, il lui manquera la disponibilité de tonnes d'extensions et de tutoriels que jQuery a. Cependant, être poussé par Google devrait garantir que le support et la fiabilité seront à la fois assez bons. La documentation et le didacticiel actuels semblent également très bons.
Les fonctionnalités de Closure semblent décentes, cependant, et son architecture modulaire est également prometteuse. Je suppose que Google l'utilise en interne depuis longtemps, 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 être un pas en avant pour le développement d'applications Web par rapport aux bibliothèques existantes comme jQuery. On suppose que cela profite aux développements internes de Google, mais des choses comme la détection de l'état en ligne (voir goog.events.OnlineHandler ), l'intégration facile des requêtes AJAX et des actions JS dans l'historique du navigateur (voir goog.History ), ou les légions de grands widgets ils fournissent (voir le paquet goog.ui ) peuvent nous aider tous à créer des applications Web encore plus impressionnantes;)!
Il est livré avec des fonctionnalités de modèles qui s'intègrent à Java (qui a dit GWT ?), Donc cela peut également être un autre avantage pour Closure.
Enfin, il semble assez simple à utiliser. La syntaxe peut être un peu plus verbeuse que la fonction courte $ jQuery, mais avec les IDE et l'auto-complétion, ce n'est pas un vrai problème. De plus, je dirais que nous pouvons nous attendre à une bonne intégration dans des IDE comme Eclipse, venant 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 compatibles AJAX et qui génère (et optimise) le code JavaScript requis. Comme Google Closure permet de créer des modèles qui peuvent être utilisés à la fois côté client et côté serveur (en utilisant JavaScript et Java), je suppose qu'il sera bientôt possible de les utiliser conjointement (si ce n'est pas déjà le cas).
Dans mon bref aperçu de l'API, je trouve que les différences entre jQuery et Closure sont frappantes.
jQuery est essentiellement un moyen simplifié d'effectuer de nombreuses opérations fréquentes de manière inter-navigateurs.
Closure est un framework qui est très nouveau, en ce sens qu'ils fournissent une manière multi-navigateurs d'utiliser la <canvas>
balise, par exemple, et ils ont ajouté de nouveaux événements.
Donc, cela s'ajoute à ce que nous faisons généralement avec javascript, ils prennent de nombreuses opérations que les gens veulent faire et les mettent 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 digérer tous les changements, mais je peux voir que cela pourrait avoir un impact important sur les applications Web qui peuvent être développées.
Le plus grand avantage de Closure Library est qu'il est conçu pour Closure Compiler. Cela ouvre des possibilités complètement nouvelles pour le développement JavaScript ...
Le compilateur a plusieurs fonctionnalités intéressantes:
Pour plus de détails, consultez: http://blog.klokantech.com/2010/12/closure-compiler-for-openlayers-3x.html
Edit : jetez un œil à cette vidéo youtube, elle répondra peut-être mieux à certaines questions sur Google Closure.
Les meilleures sources d'informations sur la fermeture de Google sont probablement le groupe de discussion du projet , le wiki, les pages de documentation, les démos et un livre encore inachevé de Michael Bolin qui est maintenant disponible sur le site des livres de safari.
une chose que je peux dire tout de suite - il y a une courbe d'apprentissage plus raide pour closure
vs, jQuery
mais cela peut valoir la peine en raison de l'immensité de la bibliothèque, de l'organisation claire et de l'avantage de l'utiliser avec le compilateur et l'outil de création de modèles.
closure
bibliothèque à cet égard ressemble plus dojo
à jQuery
, et certains concepts ont été empruntés dojo
, selon Michael Bolin.
Le compilateur de fermeture google utilise JSDoc
un système de documentation qui simultanément (s'il est créé correctement par le programmeur) fournit de la documentation et permet de détecter de nombreuses erreurs au moment de la compilation.
alors que les noms de fonctions sont plus verbeux que jQuery
les s, le compilateur réduit le code (en utilisant diverses tactiques d'optimisation) et la vérification de type fera gagner un temps considérable au débogage du code, donc le temps de taper les noms plus longs n'est probablement pas un problème. En même temps, les noms plus longs ajoutent de la lisibilité.
la bibliothèque prend en charge les navigateurs fonctionnant en mode quirks afin que les scripts puissent être intégrés par d'autres sites en utilisant le html "excentrique"
La bibliothèque fonctionne avec (mais ne dépend pas) d'un système de création de modèles 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 en utilisant un composant dédié de la bibliothèque.
closure
La bibliothèque s'appuie plutôt sur des espaces de noms délimités par des points Java
- une caractéristique organisationnelle très forte.
l'utilisation de tels espaces de noms entraînera une surcharge dans le code non compilé, mais dans le code compilé, ces choses sont remplacées par des noms de variables courts.
like jQuery google closure allows traversing dom structure with the string-based queries using a dedicated component of the library.
Pouvez-vous me relier à une documentation à ce sujet?
goog.dom.DomHelper
, mais personnellement, je ne vois pas de fonction de requête équivalente à jQuery. @Evgeny: Pouvez-vous nous donner plus de détails?
Je viens de publier un article assez exhaustif sur Google Closure qui répond à cette question sur insideRIA .
... Fermeture rulez! ^ _ ^
Peut-être que je ne reçois pas jQuery, mais je n'ai pas vu de véritable collection de widgets d'interface utilisateur (il y a 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).
Closure a, entre autres, une collection de widgets (voir l'onglet démos), y compris, par exemple, des boutons sans image utilisés dans gmail.
Plus généralement, il a plus de fonctionnalités implémentées dans le cadre de la version. Ce n'est peut-être pas un gros problème, mais je suis ennuyé par la mer de plugins jQuery lorsque je recherche quelque chose d'aussi simple qu'un module d'historique ajax ou une saisie semi-automatique.
Dans l'ensemble, c'est une énorme bibliothèque + un ensemble d'outils et je vais me familiariser avec elle juste pour savoir ce qui est disponible.
J'apprécie la plupart des contributions de Google à la communauté open source et je suis sûr qu'il contient des trucs sympas, mais dans l'ensemble, je trouve Closure encombrant, surchargé et inélégant. Si vous devez tout transformer en Java, je suppose que c'est carrément spiffy.
Éditer:
C'est suffisant. Je n'ai pas vraiment comparé. 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 énorme bibliothèque 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 tâches très spécifiques. Et puis pour la production, vous pouvez supprimer tous les déchets.
JQuery, d'autre part, est plus un tournevis sonique facilement modifiable.
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 à réduire votre propre code javascript pour permettre une livraison plus rapide sur Internet.
En bref, Google Closure est un outil tandis que jQuery est une bibliothèque similaire à Prototype.