Was bedeutet Douglas Crockford, wenn er sagt, dass jQuery nicht skaliert? [geschlossen]

32

Im Q & A-Abschnitt dieses Vortrags sagt Douglas Crockford, dass jQuery nicht so gut skaliert wie einige andere beliebte Bibliotheken. Was meint er damit und was macht die anderen Bibliotheken skalierbarer?

MatrixFrog
quelle
Weitere Informationen
MatrixFrog
Ohne das gesamte Video anzuschauen, kann ich sagen, dass die Verwendung von jQuery für sich genommen für Anwendungen mit nur einer Seite nicht gut skalierbar ist. Der Grund dafür ist, dass Sie kein Framework für die Modellansicht erhalten, um Ihren Code zu organisieren. Kombinieren Sie jQuery jedoch mit strukturellen Frameworks wie " Backbone.js" , " Knockout.js" und / oder " Sammy.js" , und die Skalierung ist in der Tat sehr gut.
user16764
Ich habe die Diskussion noch nicht gesehen, aber meine 2c hier ist, dass die Plugin-zentrierte Natur des Biests in Verbindung mit der fehlenden Anleitung und den fehlenden Tools zum Laden von Abhängigkeiten zu Apps führt, in denen Sie jQuery-Pluginsuppe haben, da jemand im Team etwas braucht Plug-in für eine bestimmte Aufgabe, das Plug-in wird app-weit eingebunden und schließlich laden Sie 342 verschiedene JQuery-Plug-ins für die gesamte App. Es ist eine Art Natur des Tieres - es wurde entwickelt, um das kleinere Zeug einfach zu machen, auf Kosten der Tatsache, dass keine großen vorgelagerten Konzepte zu beschaffen sind.
Wyatt Barnett
4
Es ist merkwürdig, dass 3 von 4 Antworten mit einer Variation von "Ich habe das Video nicht gesehen" beginnen. Wie genau können Sie klären, was Mr. Crockford meinte, ohne das Video anzuschauen?
Corbin,
Nun, er hat nicht viel gesagt. Wie einer der Antwortenden sagte, war es ganz am Ende eine Art nebensächliche Bemerkung in der Frage-und-Antwort-Sektion. Aber Sie machen einen guten Punkt.
MatrixFrog

Antworten:

41

Wenn Sie sich das Video ansehen, spricht er formal nicht über jQuery. Es ist eine schnelle Antwort auf eine häufig gestellte Frage von jemandem nach der Präsentation .... am Ende der Präsentation, ungefähr in Minute 1:29.

Er sagt eine Menge guter Dinge über jQuery. Der Teil, der nicht gut skaliert, ist seiner Meinung nach nicht gut skalierbar für sehr komplizierte Anwendungen (im Vergleich zu anderen Dingen wie YUI). .

jon
quelle
29
+1 für das tatsächliche Ansehen des Videos vor dem Posten einer Antwort. (-:
KM.
3

Es fällt mir schwer, ohne das Video zu sagen, aber ich vermute, dass jQuery nicht alle Funktionen der meisten anderen Bibliotheken bietet, die die JavaScript-Programmierung erleichtern. Ziel von jQuery ist es, die DOM- Manipulation zu vereinfachen, indem die Adressierung von Elementen über CSS- Selektoren vereinfacht und ein einfaches Framework zum Ändern dieser Elemente bereitgestellt wird. Es bietet einige andere Vorteile wie Ajax- Anforderungen, grundlegende Ereignisverwaltung, Vorlagenerstellung und einige andere rudimentäre Funktionen, aber das war's auch schon.

Andere Bibliotheken wie Prototype , MooTools , Ext JS und Dojo bieten eine Vielzahl weiterer Funktionen zum Erstellen von Objekten, Verwalten von Arrays und Sammlungen, Bearbeiten von Zeichenfolgen und Ausführen aller anderen wichtigen Aufgaben, die wir als Programmierer erwarten.

Kurz gesagt, in jQuery fehlen die Tools, die man sich für umfangreiche JavaScript-Anwendungen wünscht. Es ist aus diesem Grund ziemlich ungewöhnlich, dass JavaScript-schwere Websites mit jQuery gefunden werden. Zum Beispiel basiert Mint.com auf YUI . Apples MobileMe- Webdienst wird mit SproutCore ausgeführt (Apples Hauptsite verwendet Prototype).

Zumindest denke ich, dass er das meint.

ChiperSoft
quelle
1
Hm. Ich bin mit jQuery ziemlich vertraut, aber mit YUI oder einem der anderen JS-Frameworks überhaupt nicht sehr vertraut. Vielleicht hätte ich fragen sollen, was sie an YUI, Prototype usw. zum Erstellen großer, skalierbarer Webanwendungen gut machen. Anstatt zu fragen, was jQuery nicht hat ...
MatrixFrog
6
"Es ist ziemlich ungewöhnlich, mit jQuery sehr schwere JS-Sites zu finden." ... Können Sie sich etwas über YUI ausdenken, wenn Sie weniger als 10 MB an Dateien benötigen?
Ken
@ken Wenn Sie die gesamte YUI-Bibliothek auf Ihre Seite laden, machen Sie es falsch. Es gibt einen Grund, warum Yahoo einen Dynamic Loader anbietet. Und wenn Sie mit meiner Einschätzung nicht einverstanden sind, geben Sie Beispiele für das Gegenteil. Zeigen Sie uns eine groß angelegte Anwendung, die auf jQuery basiert.
ChiperSoft
4
Definieren Sie dann "Großformat". Der SE-Stack verwendet jQuery.
Ken
SE wird nicht überwiegend von JS gesteuert, sondern verwendet jQuery wie die meisten anderen Benutzer jQuery: Einfache Ereignisbindung, einfache AJAX-Anforderungen, einige DOM-Manipulationen. Großanwendungen sind vollständige Anwendungen, die vollständig auf JS basieren. nicht seitenbasierte Websites. Wir reden über Dinge wie das, was ich oben erwähnt habe (Mint.com & MobileMe), Cloud9 Editor, gMail, Mockingbird. Websites mit mindestens 1 MB intern geschriebenem JS-Code.
ChiperSoft
2

Mit jQuery können Sie nicht viel wiederverwenden, wie zum Beispiel MooTools .

Es ist eine Philosophie / Design-Entscheidung: jQuery ist nicht viel Code für Fire-and-Forget-Szenarien.

Wenn Sie unauffällige JavaScript- Erlebnisse erstellen (normalerweise nur Seitenerweiterungen), funktioniert dies sehr gut und erfordert sehr wenig Code. Wenn Sie Google Text & Tabellen erstellen ... nicht so sehr. Sie möchten mehr OOP-Konzepte, die in anderen Projekten zur Verfügung stehen, z. B. Vererbung, schnittstellenähnliche Mechanismen usw.

Cohen
quelle