Que signifie Douglas Crockford quand il dit que jQuery n'est pas évolutif? [fermé]

32

Dans la section Q&R de cet exposé , Douglas Crockford dit que jQuery n'est pas évolutif aussi bien que certaines autres bibliothèques populaires. Que veut-il dire par là, et qu'en est-il des autres bibliothèques qui les rendent plus évolutives?

MatrixFrog
la source
Plus de discussion à ce sujet sur le reddit JavaScript: reddit.com/r/javascript/comments/h21vr/…
MatrixFrog
Sans regarder la vidéo entière, je peux dire que l'utilisation de jQuery en elle - même ne convient pas bien aux applications d'une seule page. La raison en est que vous ne disposez pas d'un cadre de vue de modèle pour organiser votre code. Combinez jQuery avec des cadres structurels tels que Backbone.js , Knockout.js et / ou Sammy.js , et cela évolue très bien.
user16764
Je n'ai pas vu le discours, mais mon 2c ici est que la nature de la bête axée sur les plugins combinée au manque de conseils et d'outils pour charger les dépendances conduit à des applications où vous avez de la soupe de plugin jQuery car quelqu'un de l'équipe en a besoin plugin pour une tâche spécifique, ledit plugin est inclus dans toute l'application et finalement vous finissez par charger 342 plugins jquery différents sur l'ensemble de l'application. C'est un peu la nature de la bête - il est conçu pour faciliter les choses à plus petite échelle au prix de ne pas avoir de gros concepts en amont à faire.
Wyatt Barnett
4
Il est curieux que 3 des 4 réponses commencent par une variante de "Je n'ai pas vu la vidéo". Comment pouvez-vous préciser exactement ce que M. Crockford voulait dire sans regarder la vidéo?
Corbin
Eh bien, il n'a pas dit grand-chose. Comme l'un des répondants l'a dit, c'était une sorte de remarque désinvolte dans la section Q&R à la fin. Mais vous faites valoir un bon argument.
MatrixFrog

Réponses:

41

Si vous regardez la vidéo, il ne parle pas officiellement de jQuery. C'est une réponse rapide à une question quelque peu hors sujet de quelqu'un après la présentation ... à la fin de la présentation, vers la minute 1:29.

Il dit beaucoup de bonnes choses sur jQuery. La partie à ce sujet ne évolue pas bien, il dit qu'il ne pense pas que jQuery évolue très bien pour des applications très compliquées (en le comparant à d'autres choses comme YUI). .

jon
la source
29
+1 pour avoir réellement regardé la vidéo avant de poster une réponse. (-:
KM.
3

Il est difficile pour moi de dire sans regarder la vidéo, mais je suppose que c'est parce que jQuery n'offre pas toutes les fonctionnalités de la plupart des autres bibliothèques qui facilitent la programmation JavaScript. Le but de jQuery est de faciliter la manipulation DOM en simplifiant l'adressage des éléments via des sélecteurs CSS et en fournissant un cadre simple pour modifier ces éléments. Il propose d'autres fonctionnalités telles que les demandes Ajax , la gestion des événements de base, les modèles et d'autres fonctionnalités rudimentaires, mais c'est tout.

D'autres bibliothèques telles que Prototype , MooTools , Ext JS et Dojo fournissent de nombreuses autres fonctionnalités pour créer des objets, gérer des tableaux et des collections, manipuler des chaînes et faire toutes les autres choses sérieuses que nous, en tant que programmeurs, espérons pouvoir faire.

En bref, jQuery n'a pas les outils dont on aurait besoin pour des applications JavaScript à grande échelle. Il est assez rare de trouver des sites très JavaScript avec jQuery, pour cette raison. Par exemple, Mint.com est construit sur YUI . Le service Web MobileMe d'Apple fonctionne sur SproutCore (le site principal d'Apple utilise Prototype).

Du moins, c'est ce que je pense qu'il veut dire.

ChiperSoft
la source
1
Hm. Je suis assez familier avec jQuery, mais pas très familier avec YUI ou l'un des autres frameworks JS. Alors, j'aurais peut-être dû demander, qu'est-ce qui concerne YUI, Prototype, etc. qui les rend bons pour créer de grandes applications Web évolutives? Au lieu de demander ce que jQuery n'a pas ...
MatrixFrog
6
"Il est assez rare de trouver des sites très lourds JS en utilisant jQuery" .... pendant que nous créons des trucs, pouvez-vous inventer quelque chose sur YUI nécessitant moins de 10 Mo de fichiers?
ken
@ken Si vous chargez l'intégralité de la bibliothèque YUI sur votre page, vous vous trompez. Il y a une raison pour laquelle Yahoo propose un chargeur dynamique. Et si vous n'êtes pas d'accord avec mon évaluation, donnez des exemples du contraire. Montrez-nous une application à grande échelle basée sur jQuery.
ChiperSoft
4
Définissez alors "grande échelle". La pile SE utilise jQuery.
ken
SE n'est pas principalement piloté par JS, il utilise jQuery comme presque tout le monde utilise jQuery: liaison d'événement de base, requêtes AJAX simples, certaines manipulations DOM. À grande échelle signifie des applications entières entièrement construites sur JS; sites non basés sur des pages. Nous parlons de choses comme ce que j'ai mentionné ci-dessus (Mint.com & MobileMe), Cloud9 Editor, gMail, Mockingbird. Sites de 1 Mo ou plus de code JS écrits en interne.
ChiperSoft
2

jQuery ne vous permet pas beaucoup de réutilisation comme MooTools par exemple.

C'est une décision de philosophie / conception: jQuery n'est pas beaucoup de code pour les scénarios d'incendie et d'oubli.

Lorsque vous créez des expériences JavaScript discrètes (généralement uniquement des améliorations de page), cela fonctionne très bien et nécessite très peu de code. Lorsque vous créez Google Docs ... pas tant que ça. Vous voudrez plus de concepts POO que d'autres projets exposent comme l'héritage, les mécanismes de type interface, etc ...

Cohen
la source