71 votes

Pourquoi jQuery est-il si largement adopté par rapport aux autres frameworks Javascript?

Je gère un groupe de programmeurs. Je fais de la valeur à mes employés de l'opinion, mais dernièrement, nous avons été répartis comme pour le cadre de base pour l'utilisation sur des projets web.

Personnellement, je préfère MooTools, mais certains de mes équipe semble vouloir migrer vers jQuery , car il est de plus en plus largement adoptée. Que par lui-même n'est pas assez pour moi afin de permettre une migration.

J'ai utilisé les deux jQuery et MooTools. Cet essai tend à refléter la façon dont je me sens à propos de ces deux cadres. jQuery est idéal pour la Manipulation du DOM, mais semblent être limités à vous aider à le faire.

Caractéristique sage, à la fois jQuery et MooTools facile de DOM de Sélection et de Manipulation:

// jQuery
$('#someContainer div[class~=dialog]')
    .css('border', '2px solid red')
    .addClass('critical');

// MooTools
$('#someContainer div[class~=dialog]')
    .setStyle('border', '2px solid red')
    .addClass('critical');

Les deux jQuery et MooTools faciles à AJAX:

// jQuery
$('#someContainer div[class~=dialog]')
     .load('/DialogContent.html');

// MooTools (Using shorthand notation, you can also use Request.HTML)
$('#someContainer div[class~=dialog]')
     .load('/DialogContent.html');

Les deux jQuery et MooTools facile de DOM Animation:

// jQuery
$('#someContainer div[class~=dialog]')
    .animate({opacity: 1}, 500);

// MooTools (Using shorthand notation, you can also use Fx.Tween).
$('#someContainer div[class~=dialog]')
    .set('tween', {duration: 500}) 
    .tween('opacity', 1);

jQuery propose les extras suivants:

  • Grande communauté de supporters
  • Référentiel De Plug-In
  • L'intégration avec Microsoft ASP.NET et VisualStudio
  • Utilisé par Microsoft, Google et d'autres

MooTools offre les extras suivants:

  • Orientée objet Cadre Classique de la programmation orientée objet de l'émulation de la JS
  • Étendue des objets natifs
  • Plus de cohérence entre les navigateurs pour les fonctions de soutien.
  • Plus facile la réutilisation du code
  • Utilisé par Le World Wide Web Consortium, les Palmiers et les autres.

Étant donné que, il semble que MooTools fait tout jQuery et plus encore (certaines choses que je ne peut pas le faire en jQuery et je peux en MooTools) mais jQuery a une petite courbe d'apprentissage.

La question est donc, pourquoi avez-vous ou votre équipe, choisissez jQuery sur un autre framework JavaScript?

Remarque: bien que je sais et je l'avoue jQuery est un grand cadre, il y a d'autres options autour de moi et je suis en train de prendre une décision quant à pourquoi jQuery devrait être notre choix par rapport à ce que nous utilisons en ce moment (MooTools)?

62voto

Dimitar Christoff Points 18439

C'est une drôle de question... j'ai l'impression que...

  1. vous êtes très familier avec mootools et de profiter pleinement de son modèle de programmation orientée objet, ce qui rend votre code plus facile à gérer et prendre en charge déjà.
  2. vous vous rendez compte que jQuery est quelque peu différente et tordu vers la manipulation du DOM et AJAX et que mootools ne tout faire jQuery, ET bien plus encore.
  3. des sons comme si vous n'avez pas besoin d'utiliser beaucoup de la manière de la 3 ème partie de plugins qui rend les points de popularité du jQuery et le soutien d'un peu moins important.

Ligne de fond, est-ce que le battage médiatique? jQuery est en train de devenir l'un de ces magique de marketing de mots à la mode comme 'AJAX', .NET et le Web 2.0 - ce qui est bien pour eux, mais pourquoi avez - vous besoin de justifier de rester avec le cadre qui fonctionne si bien pour vous? Il y a aussi les considérations commerciales qui, j'imagine, va couvrir des choses comme:

  • cadre de la longévité, ou mootools chances d'aller loin dans le visage de plus en plus de jQuery - très douteux, car ils viennent de sortir 1.3 beta 1 et 2.0 est dans les canalisations pour la libération d'ici la fin de l'année.
  • les coûts de personnel et leur formation (j'imagine trouver mootools programmeurs sera plus difficile que ces qui claque jquery sur leur C. V / reprise).
  • le temps (et le coût) prises pour maintenir et étendre vos systèmes sous chaque cadre, compte tenu de vos ressources.

Les deux cadres sont grands, mais je crois que vos intérêts sont mieux servis en restant avec mootools.

60voto

JoshJordan Points 8869

Personnellement, jQuery fait exactement ce dont j'ai besoin.

J'essaie de faire la plupart de mes trucs dans mon code côté serveur, ce qui est bien structuré: il est bon de la programmation orientée objet, les couches, et une architecture MVC. Quand j'ai besoin de faire quelque chose avec le Javascript, j'ai trouvé (pour l'instant) que jQuery a ce dont j'ai besoin. Franchement, qui se répartissent en trois catégories:

  • Simple manipulation du DOM, généralement de montrer/cacher les choses sans heurter le serveur.
  • Les appels Ajax, nuff said.
  • L'INTERFACE utilisateur des avantages, y compris modale des popups, des animations, des transitions de fondu à partir de/caché/montré. Je suis un hardcore backend de codage gars, et je sucer à des éléments d'INTERFACE utilisateur. J'aime vraiment ce que jQuery me permet par programme faire des trucs qui semble attrayant.

En plus de cela, le plugin jQuery library est énorme, et je l'ai trouvé tout à fait un peu de bibliothèques que de simplifier mon côté client travail. De bonnes choses.

MooTools introduit OO de la pensée, ce qui est agréable, mais pas ce dont j'ai besoin. Je veux garder mon structuredness tous sur le backend, et ne pas avoir à introduire la pensée de mon code côté client. Pour moi, le code côté client est un très petit morceau de l'accent et de la penser à partir d'une Classe-point-de-vue est exagéré, et plus de travail. J'ai l'impression que je serais à la construction de deux applications au lieu d'un, si je devais utiliser ce que j'avais pense que le mieux serait de pratiques pour MooToools.

Je pense que cela résume bien pourquoi il est si populaire, en particulier autour d'ici. En gros, nous sommes backend code-y type de personnes, et jQuery nous permet de faire un appel de l'INTERFACE utilisateur de la programmation, et permet de nous concentrer sur notre backend de base.

16voto

Nosredna Points 33670

Je ne suis pas un fan d'imposer des classiques de l'orientation de l'objet sur JavaScript. Il ya tellement de façons de le faire que l'un des programmeurs JavaScript peut-être à l'aide de Base2 pour OO, tandis que l'autre utilise Prototype ou Moo ou JS.Class ou Joose. Resig délibérément décidé de ne pas ajouter des catégories à jQuery, et qui a encouragé les gens à trouver plus de JavaScript natif façons de résoudre les problèmes.

En conséquence, il est plus facile pour moi de lire le JavaScript d'autres jQuery écrivains écrire, et d'écrire du code jQuery qui est plus facile pour les autres à lire. En général, je n'essayez pas d'imiter la classe de la programmation orientée objet en JavaScript. Au lieu de cela, j'ai créer des objets à la volée et de les transmettre autour de, et j'ai beaucoup de tableaux d'objets. Il est donc facile de comprendre que je me suis même trouvé comptable que la réflexion sur la programmation orientée objet les langues!

Pour tout ce que je sais Moo peut très bien avoir rattrapé avec jQuery ou dépassé. Mais je ne peux pas passer mon temps le suivi de l'6 ou 7 grandes bibliothèques JavaScript pour voir quel cheval est en avance.

Je pense que c'était en grande partie une question de timing. Lorsque les masses de programmeurs a sauté dans AJAX, jQuery a été le chaud de nouveau truc cool qui a résolu leurs problèmes.

D'autres bibliothèques ont largement rattrapé. YUI, ExtJS, Dojo, Moo, ils sont tous grands. Mais je ne peux pas les utiliser tous.

Je travaille assez dur à essayer de comprendre les ramifications de la nouvelles fonctionnalités de la bibliothèque, je dois utiliser. Par exemple, jQuery ajouté events Live de 1.3. En fait, ce n'permettez-moi de couper du code à partir de plusieurs pages. Ne Moo offre maintenant aussi, et comment suis-je censé savoir ce qui s'est passé, si c'était le cas?

Je suis sûr que Moo est génial. J'aimerais avoir le temps d'apprendre. Mais avez-vous regardé Dojo? J'ai eu à l'utiliser sur un projet et trouvé qu'il avait tiré dans la plupart des grandes idées à partir de jQuery. Et il a pubsub et une bonne prise en charge de la Comète.

Je compatis avec vous. Mais vos programmeurs parlent de sens. L'apprentissage de jQuery qui est bon pour leur carrière, et il y a de plus en plus de livres, des exemples et des amis programmateurs de demander de l'aide si elles utilisent jQuery.

Si vous décidez d'aller jQuery après tout, réfléchissez bien avant de décider de virer de bord sur un OO bibliothèque. Il y a quelques frais (comme JS.Class ou Joose), mais en prenant cette mesure signifie isoler vous-même de la façon dont la plupart des programmeurs JavaScript code.

11voto

Chase Wilson Points 596

Je me pose cette question depuis un certain temps maintenant, par le biais de seulement essayer d'envelopper ma tête autour de l'argument. Et avec toujours la discussion que j'ai lu, l'écrasante réponse a été "Plus largement adopté par la meilleure".

Je suis quelqu'un qui utilise à la fois en profondeur. JQuery au travail (adoptée parce qu'il était "de plus en plus largement adoptée") et Mootools sur des projets personnels. En conséquence, je ne cesse de me retrouver sentiment paralysé lors de l'utilisation de JQuery, JSON de support, l'élément de la création, de la gestion des événements... et ainsi de suite. Au travail, je me retrouve à écrire des chaînes de 75 événements de temps... et je me sens sale.

Ma principale de boeuf avec JQuery cependant, est qu'il y a un manque de cohérence ou de la pratique où les plugins et 3ème partie, les développeurs sont concernés. L'anecdotique "Plus les plugins sont disponibles" vraiment ne m'aide pas quand il n'y a pas de cohérence entre les plugins, structurellement ou autrement. Il m'a fallu plusieurs semaines pour apprendre le "accepté" modèle de plug-in, et même alors, j'ai adapté mon propre style pragmatique, comme je l'ai trouver l'erreur et de l'inefficacité dans les structures actuelles. On peut dire que c'est un " Pro " que n'importe qui peut sauter dedans et de commencer à JQuerying. Cependant, je suis plus enclin à appeler cela un 'Con', dans ce que vous verrez de 30 façons différentes d'accomplir quelque chose, et il est difficile d'épingler une norme acceptée.

Alors, que signifie "Savoir JQuery", Fait-il dire que vous savez comment faire du rock un peu .hide().show().fadeIn().fadeOut()?

Quand je me gangster sur mon JS au travail, je m'ennuie de moi quelques Mootools. Je ne veux pas de Native support JSON? Allez......

En réponse à la "Largement adopté" la réponse, nous le savons tous OSCommerce est le plusLargement Adopté" panier d'achat, et nous savons tous ce qu'est un tas de merde que c'est. Je suis en aucune façon la comparaison de JQuery pour OSCommerce. Je suis tout simplement en pointant du doigt les coupables de "Largement Adopté" réponse.

Comme pour les plugins, l'App store d'apple a de quoi... 100k apps? 50 000 sont péter les applications. Bien sûr, il ya beaucoup de plugins pour JQuery, mais le ratio de la corbeille pour en vaille vraiment la peine est grande.

7voto

Andrew Siemer Points 7226

jQuery vous donne accès à des nettes et concises fonctionnelle méthodes de programmation. Depuis la publication de la méthode de chaînage (LINQ) en C# 3.0, cela fonctionne très bien .NET programmeurs. De sorte que le flux d'une langue à l'autre est facile. Pour être en mesure d'interroger le DOM pour un objet, ou une liste d'objets, d'œuvres beaucoup mieux pour nous. C'est du jQuery sélection de la première puissance qui le rend si attrayant, puis l'extensibilité, et bien sûr toutes les fonctions intégrées qui vont avec sont beau. Aussi, la communauté derrière est magnifique dans ce que je regarde en premier pour voir si quelqu'un fait quelque chose et puis de tenter de les faire moi-même si une solution n'était pas trouvée. Et la dernière...mais certainement pas moins...le fait que Microsoft va inclure dans Visual Studio 10 et de soutien, c'est super. Moo Outils, Prototype, etc. ne peuvent tout simplement pas rivaliser avec tous les ci-dessus.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X