Update 2015:
In dieser Antwort aus dem Jahr 2011 spreche ich von Bibliotheken wie jQuery, YUI oder Prototype. Diese Argumentation gilt auch heute noch für Frameworks wie Angular, React oder Ember. In diesen 4 Jahren hat sich die Technologie enorm weiterentwickelt, und obwohl ich deutlich weniger Vorurteile gegenüber React oder Angular sehe als gegenüber jQuery oder YUI, ist dieselbe Art des Denkens - wenn auch in geringerem Maße - bis heute vorhanden.
Update 2016:
Ich kann einen Artikel nur empfehlen, der vor einigen Tagen veröffentlicht wurde:
- Warum jQuery? von Michael S. Mikowski, Autor des Buches Single Page Web Applications
Dieser Artikel ist im Grunde eine sehr detaillierte Antwort auf diese Frage. Wäre es verfügbar gewesen, als ich die Antwort unten schrieb - ich hätte es definitiv zitiert.
Ursprüngliche Antwort:
Ich werde über jQuery antworten, aber das sind die gleichen Argumente, die ich gegen die Verwendung von YUI, Prototype, Dojo, Ext und wenigen anderen gehört habe. Hauptargumente, die ich gehört habe:
Die Dateigröße , die bei jQuery 3.2.1 tatsächlich 84,6 KB beträgt, ist wahrscheinlich kleiner als das Logo auf einer durchschnittlichen Website und kann über das CDN von Google bereitgestellt werden, das sich wahrscheinlich bereits im Cache der meisten Ihrer Besucher befindet. Da die Verwendung von jQuery immer eine kleinere Dateigröße Ihrer eigenen JavaScript-Dateien bedeutet, kann dies tatsächlich einen kleineren Download bedeuten , auch wenn dies nicht bereits im Browser-Cache der Fall ist.
Geschwindigkeit - das Schreiben von reinem JavaScript mag schneller sein, aber das Schreiben von tragbarem JavaScript scheint für die meisten Menschen unmöglich zu sein. Eine Website, die schneller ist, aber nicht in jedem gängigen Browser funktioniert, ist in der realen Welt nutzlos. Außerdem verwendet jQuery einige ziemlich umfangreiche Optimierungen, um tatsächlich verdammt schnell zu sein, und wird mit jeder Veröffentlichung noch schneller. Daher ist es nicht so einfach, schnelleren Code von Hand für etwas anderes als triviale Beispiele zu schreiben. (*)
"geistiges Eigentum" - ein Unternehmen hat Angst, den Code eines anderen zu verwenden - während jQuery Open Source und kostenlose Software ist, die überall verwendet wird, vom Blog Ihrer Großmutter bis zu Amazon, von Twitter bis zur Bank of America, von Google bis Microsoft - wenn sie können Verwenden Sie es, dann kann jedes Unternehmen es verwenden.
Ich kann mich nicht erinnern, ein anderes Argument ernsthaft gehört zu haben.
(*) Hier ist ein triviales Beispiel: getElementById ('someid') vs. jQuery ('# someid')
Ist die Verwendung von getElementById schneller? Ja. Und natürlich überprüft jeder immer den parentNode, um zu erkennen, wann Blackberry 4.6 Knoten zurückgibt, die nicht mehr im Dokument enthalten sind, oder? jQuery tut es. Und jeder behandelt den Fall, dass IE und Opera Elemente nach Namen anstelle von ID zurückgeben, oder? jQuery tut es. Wenn Sie dies nicht tun, ist Ihr Code nicht portierbar und Sie führen subtile Fehler ein, die sehr schwer zu finden sein können. Und getElementById ist das trivialste Beispiel, das man finden könnte - lassen Sie mich nicht einmal mit Events und AJAX und dem DOM anfangen ...
Aktualisieren:
Es gibt tatsächlich ein viertes Ergebnis der Frage, warum jemand jQuery nicht verwenden möchte. Ich habe vergessen, es auf diese Liste zu setzen, weil es nicht wirklich eine Antwort ist, sondern das Fehlen einer Antwort. Der Kommentar, den ich gestern bekam, erinnerte mich daran. Dies ist kaum ein "technischer Grund", der in die Liste aufgenommen werden soll, kann aber dennoch interessant sein und tatsächlich die häufigste Reaktion sein.
Was ich persönlich als Hauptgrund für all diese Reaktionen vermute , ist meines Erachtens das größte Hindernis für den Fortschritt in der Informatik: "Ich möchte es nicht nutzen, weil ich es nie getan habe, deshalb muss es nicht so wichtig sein. "
Es war einst die Reaktion auf die Optimierung von Assemblern, Compilern, strukturierter Programmierung, höheren Sprachen, Speicherbereinigung, objektorientierter Programmierung, Schließungen oder so ziemlich allem, was wir heute für selbstverständlich halten - und heute sind es AJAX-Bibliotheken. Vielleicht wird sich eines Tages niemand mehr daran erinnern, dass wir früher manuell mit der unformatierten DOM-API auf Anwendungsebene interagiert haben, wie jetzt, und niemand erinnert sich daran, dass wir früher Programme mit rohen, schmucklosen, unergründlichen Hexadezimalzahlen geschrieben haben .