Communardo Software GmbH, Kleiststraße 10 a, D-01129 Dresden
0800 1 255 255

Javascript-Frameworks und Web-Toolkits im Vergleich

Mit dem Siegeszug von AJAX ist zugleich auch die Anzahl ver­füg­ba­rer
Javascript-Frameworks explo­diert.
Die Entwicklung der diver­sen Frameworks ist mitt­ler­weile so weit fort­ge­schrit­ten, daß es ein "bes­tes" Framework nicht mehr gibt.

Vielmehr set­zen die "gro­ßen" unter den zahl­lo­sen Frameworks unter­schied­li­che Schwerpunkte und sind für ver­schie­dene Anwendungsszenarien kon­zi­piert. Dabei ist nicht jedes Framework für jeden Einsatzzweck glei­cher­ma­ßen geeig­net.

jQuery

Das zuletzt am schnells­ten gewach­sene Framework was die Anzahl der Nutzer angeht, ist jQuery. Mittlerweile ist es das meist­ver­wen­dete Framework über­haupt. jQuery ver­folgt dabei neben dem "schnel­ler, ein­fa­cher" Grundkonzept aller Frameworks den Ansatz, auch Anwendern ohne tief­ge­hende Javascript-Kenntnisse die Entwicklung rela­tiv kom­ple­xer JS-Applikationen zu ermög­li­chen.

Der Fokus von jQuery liegt auf DOM-Manipulationen, die mit jQuery so ein­fach zu rea­li­sie­ren sind wie mit kaum
eimem ande­ren Framework. Da alle jQuery-Funktionen das jQuery-Objekt zurück­ge­ben, kön­nen die
Funktionen mit­ein­an­der ver­ket­tet wer­den, wodurch die Lesbarkeit und Verständlichkeit des Codes
stark erhöht wird.

$("div.test").add("p.quote").addClass("blue").slideDown("slow");

jQuery zielt haupt­säch­lich auf die Standard-Anwendungsfälle, die in aktu­el­len Web-Frontends auf­tau­chen:
Ausklappmenüs, Accordeonfunktionen, Tabs, Tooltips, Formularvalidierung, Drag&Drop, AJAX etc.

Diese Standard-Anwendungen sind in der Umsetzung so ein­fach wie mög­lich gehal­ten, die Lernkurve bei jQuery ist daher recht flach und es stel­len sich schnell erste Erfolge ein. Die 2000 frei ver­füg­ba­ren Plugins bie­ten vor­ge­fer­tigte Lösungen für nahezu alle denk­ba­ren Anwendungsfälle aller­dings in unter­schied­li­cher Qualität.

Aufgrund des eige­nen Namensraums kann jQuery par­al­lel zu allen ande­ren Frameworks betrie­ben wer­den.
Was die Performance angeht ist jQuery spä­tes­tens seit Version 1.3, mit der die Sizzle Selektor-Engine ein­ge­führt wurde, füh­rend unter den JS-Frameworks.

Prototype

Prototype ist eines der ältes­ten Frameworks (seit 2005) und hat dem­entspre­chend gro­ßen Einfluss
auf die nach­fol­gen­den Generationen gehabt. (z.B. MooTools)
Die Popularität von Prototpe ist nach wie vor unge­bro­chen, u.a. wird es zusam­men mit Ruby on Rails aus­ge­lie­fert.
Prototype erwei­tert Javascript um zahl­rei­che Funktionen und ver­folgt einen objekt­ori­en­tier­ten Ansatz, der die Nachbildung von eige­nen, instan­zi­ier­ba­ren Klassen sowie Vererbung erlaubt. Ein eige­nes AJAX-Objekt steht zur Verfügung, ebenso wie JSON-Unterstützung.

Die umfang­rei­che Bibliothek eig­net sich mit ihrer brei­ten inhalt­li­chen Ausrichtung zeich­net sich durch eine qua­li­ta­tiv hoch­wer­tige Codebasis und eine hohe Flexibilität aus. Allerdings erkauft man sich diese Flexibilität auch mit einem rela­tiv hohen Einarbeitungsaufwand, Frameworks wie JQuery machen es dem Einsteiger in die­sem Punkt leich­ter. Die gute Dokumentation hilft aller­dings in den meis­ten Fällen über die auf­tau­chen­den Hürden hin­weg.

Prototype bringt von Hause aus keine Widgets und Funktionen für visu­elle Effekte mit, diese kön­nen jedoch über die Erweiterung scrip­ta­cu­lous zusätz­lich ein­ge­bun­den wer­den. Zudem ste­hen in der Prototype Extension Library knapp 150 Erweiterungen und Widgets zur Verfügung.
Nachteile von Prototype sind die mäßige Performance insb. in den ver­schie­de­nen Versionen des IE, teil­weise ist Prototype um den Faktor 6 lang­sa­mer als die Konkurrenz (JQuery).

Google Web Toolkit (GWT)

Das Google Web Toolkit (GWT) ver­folgt einen gänz­lich ande­ren Ansatz als die ande­ren Javascript-Frameworks.
Das GWT bie­tet eine Java-Bibliothek, die es ermög­licht, AJAX-Anwendungen in Java zu schrei­ben und
den Bytecode dann in Java-Script kom­pi­lie­ren zu las­sen. Dadurch kann die kom­plette Client/Server-Entwicklung auf Java-Basis erfol­gen. Die Web-Applikation (gleich ob mit oder ohne AJAX) wie eine Desktop-Applikation im Java-Umfeld erstellt, die Oberflächenprogrammierung ähnelt dabei Swing. Seit Version 1.5 wird auch Java 5 voll unter­stützt.

Dieses Java-basierende Konzept unter­schei­det das GWT fun­da­men­tal von allen ande­ren Frameworks aus dem Bereich
und bie­tet eine Reihe von Vorteilen:

  • es kön­nen alle bekann­ten Entwicklertools aus dem Java-Umfeld ein­ge­setzt wer­den, incl. JUnit Tests und Debugger
  • Fehlermeldungen zur Compilezeit
  • es sind im Prinzip keine Javascript-Kenntnisse erfor­der­lich
  • Aktualisierung des GWT genügt, um sich aktu­el­len (Browser)-Entwicklungen anzu­pas­sen

Auch an wei­tere Merkmale aus dem Enterprise-Segment wurde gedacht: So ist eine ein­fa­che Internationalisierung über Property-Dateien mög­lich und zahl­rei­che vor­ge­fer­tigte Widgets ste­hen ein­satz­be­reit zur Verfügung.
Die asyn­chrone Kommunikation mit dem Server ver­läuft über Remote Procedure Calls und XML oder JSON.

Zum Testen steht ein Hosted Mode zur Verfügung, die­ser führt den Java-Bytecode direkt aus und ermög­licht unmit­tel­ba­res Testen, ohne den "Umweg" über Javascript. Der Web Mode ist dage­gen für die Produktivumgebung gedacht und arbei­tet mit dem gene­rier­ten Javascript.

Auch Ansätze zur Barrierefreiheit sind vor­han­den. So wird über History-API die volle Funktionsfähigkeit des zurück-Buttons des Browsers auch bei AJAX-Aufrufen sicher­ge­stellt, zudem wird eine reine Tastaturbenutzung und Schriftgrößeneinstellung ermög­licht.

Im die Performance zu stei­gern, erzeugt der Javascript-Compiler pro Browser und Sprache eine eigene Javascript-Datei. Dadurch wer­den geringe Dateigrößen ermög­licht. Außerdem wer­den Icons auto­ma­tisch zu einem Einzelimage (ImageBundle) zusam­men­ge­fasst, wodurch die Zahl der HTTP-Requests und damit die Ladezeit dras­tisch redu­ziert wer­den kann.

Für das GWT ste­hen zahl­rei­che Widgets und Extensions auch von Fremdanbietern zur Verfügung.

Google Dienste wie Google Maps wer­den kön­nen über die API naht­los inte­griert wer­den, auch Google Gears wird unter­stützt.
Die Klassen des GWT kön­nen bei Bedarf auch mit hand­ge­schrie­be­nen JavaScript inner­halb des Java-Quellcodes gemischt wer­den (JavaScript Native Interface (JSNI))

Aufgrund sei­ner Konzeption als Java-Bibliothek ist das GWT in ers­ter Linie für umfang­rei­che Javascript-basierende Applikationen wie bspw. GMail gedacht. Als blo­ßes Hilfsmittel für DOM-Manipulationen ist es über­di­men­sio­niert und der Einarbeitungsaufwand ist zu hoch. Für Entwickler aus dem JAVA-Umfeld aber durch­aus inter­es­sant, sofern die Projekte mas­si­ven Javascript-Einsatz erfor­dern und Java-Entwicklungswerkzeuge genutzt wer­den sol­len.

Related Posts

Pin It on Pinterest