molily: jquery vs. prototype

Beitrag lesen

nach dem was ich bisher zu dem Theme gefunden und gelesen habe,
soll jquery schneller sein, es sollen mehr 3rdparty-Plugins
zu kriegen sein, aber soll auch insgesammt unsauberer gecoded
sein. Jquery scheint eher etwas für jeman zu sein, der sich
JS vom Hals halten will und ohne grosse Kenntnisse Effekte
zaubern will. Prototype soll dafür schwerer zu erlernen sein,
dafür aber sauberer gecodet sein.

Jein. Beide APIs haben ihre Stärken und Schwächen. Manches ist intutiv und konventionell umgesetzt, anderes weicht von etablierten Mustern ab oder ist unnötig kompliziert. Nicht alles, was die einem vorsetzen, erspart einem Arbeit oder lässt bessere Schreibweisen zu.

Prototype ist schwerer, weil es einen umfassenderen Anspruch hat, der von der Übertragung von OOP aus Ruby nach JavaScript herrührt. jQuery ist gekapselt und lässt die Native Objects (Kernobjekte wie Array, String, Date usw.) unangetastet, während Prototype diese und die Elementobjekte direkt erweitert. Das gibt dem Programmierer mehr Möglichkeiten, aber erfordert auch ein Verständnis dieser Paradigmen. (Das genannte underscore.js versteht sch als jQuery-Zusatz, weil jQuery im Gegensatz zu Prototype eben nicht diese Möglichkeiten in gleicher Ausdrucksstärke bietet.)

»Sauber gecodet« sind mittlerweile beide, meinem Eindruck nach wird in jQuery mehr Arbeit in Unit Testing und Qualitätssicherung gesteckt. Trotzdem finden sich in neuen Versionen fiese Bugs, Undurchdachtes und wenig Robustes. Letztlich schleppt jQuery architektonische Fehlentscheidung mit sich herum (die aus Gründen der Abwärtskompatibilität nicht so einfach geändert werden können) und macht zum Teil auch neue. Das nervt natürlich auf Dauer.

Auch wenn sich das jQuery-Team sehr bemüht, das Verhältnis von offenen Bugs und Schwachstellen ist meinem Empfinden in letzter Zeit nach wieder zum Negativen ausgeschlagen. Es ist einfach ein riesiges Softwareprojekt mit entsprechendem Pflegebedarf geworden. Dafür ist die Community und die Nutzerschar sehr groß und aktiv. Der allgemeine Trend geht, wie die Vorredner sagten, tatsächlich zu jQuery, während Prototype vergleichsweise eingeschlafen wirkt. Diese Verengung auf jQuery ist bedauerlich, weil andere, weniger etablierte Frameworks zum Teil viel clevere Ideen haben.

Anfänger und Leute, die JavaScript eigentlich hassen, greifen oft direkt zu jQuery. jQuery hat sicher diesen zweischneidigen Ruf, JavaScript für Nicht-JavaScripter zugänglich zu machen. Ich denke, jQuery legt einen, weil es so gekapselt und begrenzt ist, weder auf einen gänzlich schlechten noch auf einen wirklich guten Programmierstil fest. Den muss der Programmierer mitbringen, und wenn er das tut, dann lassen sich auch mit jQuery vernünftig geordnete Programme schreiben. Wer schon Erfahrung in JavaScript hat, der wird das schnell merken, die Möglichkeiten der Biliothek mit Gewinn nutzen und mit eigenen Best Practises deren Schwächen nivellieren.

jQuery kann wirklich auf ein großes Plugin-Arsenal zurückgreifen, allerdings sind viele davon höchstens als Grundlage und Ideengeber brauchbar. Aber erfahrenen JavaScript-Programmierern ist das vermutlich vertraut.

Mathias