molily: jquery vs. prototype

Beitrag lesen

Hallo,

die heutigen JavaScript-Frameworks decken alle ein Grundset an typischen Aufgaben ab, die beim DOM-Scripting anfallen. Sie unterscheiden sich daher wenig unter der Haube, sondern gleichen sich diesbezüglich an. - Wenn du zehn Jahre JavaScript programmiert hast, dann wirst du vieles davon (wiederer)kennen.

Die Frameworks unterscheiden sich vielmehr in den Paradigmen und Entwurfsmustern, denen der Abstraktionlayer folgt. Diese entstammen zum Teil anderen Programmiersprachen und betonen unterschiedliche Aspekte von JavaScript. Alle haben ihre legitimen Anwendungsbereiche und ihre Vor- und Nachteile. Letztlich ist es auch Geschmackssache, mit welchen Konzepten der Einzelne besser zurechtkommt.

Z.B. jQuery und Prototype bieten einen vergleichbaren Funktionsumfang und eine allgemeine Ausrichtung, aber die Art und Weise, wie man ein Problem löst, kann sich stark unterscheiden. Bibliotheken wie Dojo/YUI 2, YUI 3 und fusejs bieten noch einmal ganz andere Ansätze. Mootools hingegen ähnelt konzeptionell stark Prototype. DOMAssistant und weitere kleinere greifen Ideen von jQuery auf.

Es sind einfach verschiedene Philosophien, Code zu strukturieren und Probleme in Algorithmen auszudrücken. Kein Framework beansprucht für sich, alle Probleme lösen zu wollen. Es gibt unzählige Bibliotheken mit besonderem Ensatzbereich (z.B. ExtJS und qooxdoo für Ajax-Anwendungen) sowie Zusätze zu größeren Bibliotheken (z.B. Scriptaculous/Scripty2 für Prototype, underscore.js für jQuery).

Pauschalaussagen wie »XY ist schneller« halten nicht mehr als ein paar Monate, bis eine andere Bibliothek den bisherigen Spitzenreiter in puncto Geschwindigkeit unterbietet. Aufgrund der besagten Unterschiede ist auch keine Bibliotheken »besser«, es kommt immer auf den Anwendungsfall und weitere Kriterien an, z.B. auf die Erfahrung und den Hintergrund des Programmierers.

Mit Prototype und jQuery für allgemeines DOM-Scripting solltest du dich auf jeden Fall auseinandersetzen. Am besten mit beiden dieselbe Aufgabe versuchen umzusetzen, damit du siehst, wie sich die unterschiedlichen Herangehensweisen in der Praxis anfühlen und wo sich Stärken und Schwächen abzeichnen. Daraus kannst du nur lernen und letztlich zwingt dich niemand, dann nur noch mit Frameworks zu programmieren. Es sind bloß Beispiele für mögliche Software-Architekturen, die du auf deine eigene Programmierung und deine eigenen Bibliotheken gewinnbringend anwenden kannst oder auch nicht.

Zuletzt noch ein paar Texte:
http://matthiasschuetz.com/javascript-framework-matrix/de/
http://www.b-list.org/weblog/2007/jan/22/choosing-javascript-library/
http://forum.de.selfhtml.org/archiv/2008/8/t176131/#m1158392
http://aktuell.de.selfhtml.org/weblog/javascript-bibliotheken
http://aktuell.de.selfhtml.org/artikel/javascript/organisation/#ausblick
http://molily.de/weblog/javascript-zukunft-2010#js-zukunft-5
http://molily.de/js/bibliotheken.html

Grüße,
Mathias