Mit der Kraft von JavaScript
Artikel erschienen in Swiss IT Magazine 2008/05
Mit dem Trend zu Webapplikationen und Software as a Service steigt auch der Bedarf nach Werkzeugen zur Verwendung von AJAX (Asynchronous JavaScript And XML). Denn AJAX ermöglicht nicht nur mehr Interaktivität ohne die Nutzung spezieller Browser-Plug-ins, sondern kann auch die Benutzerfreundlichkeit von Webapplikationen steigern, da es dem Entwickler mehr Flexibilität bei der Abbildung von Workflows bietet. Somit wird meist erst durch AJAX die Umsetzung respektive Nutzung von Webapplikationen sinnvoll.
Eigentlich könnte man meinen, dass die Entwicklung von «AJAX-Applikationen» keine allzu grosse Sache ist. Denn die zugrunde liegenden Technologien – JavaScript, XML sowie DOM-Scripting – sind seit Jahren bekannt und werden fleissig verwendet. Doch der Teufel steckt im Detail.
- Kompatibilität: Zwar beherrschen alle verbreiteten Browser in den aktuellen Versionen die benötigten Technologien, doch ist ihre Ansteuerung nicht immer identisch. So muss beispielsweise das XmlHttpRequest-Objekt, welches das Nachladen von Daten vom Webserver ermöglicht, im Internet Explorer 6 anders als in den anderen Browsern geladen werden. Ausserdem machen Bugs in den verschiedenen Browser-Versionen Workarounds erforderlich.
Der Markt an Frameworks ist fast unüberschaubar gross. Das auf AJAX fokussierte Weblog Ajaxian.com führt regelmässig mit der Burton Group Umfragen zu den populärsten Frameworks durch und kam in der Erhebung vom letzten Herbst auf 241 AJAX-Toolkits und verwandte Werkzeuge – nachdem es 2005 noch weniger als 50 waren. Der Fokus der verschiedenen Werkzeuge ist dabei erstaunlich unterschiedlich.
Grundsätzlich kann man zwischen zwei verschiedenen Typen unterscheiden:
Von beiden Framework-Sorten gibt es eine Vielzahl von Mischungen und Varianten. So existieren Frameworks, die beide Seiten abbilden, bestehende Client-seitige Frameworks um Effekte und Widgets ergänzen oder das Schreiben der AJAX-Applikation in einer anderen Sprache wie Java erlauben, welche dann mit einer Art Compiler in JavaScript übersetzt wird. Andere Unterarten ermöglichen es, AJAX-Aktionen in XML zu deklarieren oder GUIs nach Desktop-Vorbild zu erstellen, die verschiedene Fenster, Toolbars und andere Dinge unterstützen, die man sonst nur vom Desktop und nicht von einer Webapplikation her kennt.
Geht es an die Entwicklung einer Anwendung, bei der AJAX verwendet werden soll, stellt sich natürlich die Frage, auf welche Art von Framework man setzen soll.
Nimmt man die bereits erwähnte Umfrage von Ajaxian.com (www.ajaxian.com/archives/2007-ajax-tools-usage-survey-results) zur Hand, ist das Verdikt klar: Client-seitige Open-Source-Frameworks wie Prototype, jQuery oder Ext JS stehen besonders hoch im Kurs der Anwender. Server-seitige Toolkits wie diejenigen von Microsoft oder Google treffen auf weniger Gegenliebe wie die meisten proprietären Varianten, für die man mehr oder weniger Geld auf den Tisch legen muss.
Auch wenn die Umfrage nicht repräsentativ ist, entbehrt sie nicht einer gewissen Logik. Denn Client-seitige Frameworks bieten, wie erwähnt, volle Kontrolle über die Aktionen auf dem Client und lassen sich mit Hilfe von Widgets, Plug-ins und einfachen Server-seitigen Frameworks, die interne Interfaces per AJAX anbieten, effizient verwenden. Gleichzeitig sind sie unabhängig von der jeweiligen Server-Technologie. Man kann sie beispielsweise mit PHP und Ruby on Rails verwenden, ohne den Umgang mit mehreren Toolkits beherrschen zu müssen. Der grosse Nachteil bei Client-seitigen Frameworks ist, dass sie JavaScript-Know-how verlangen und in der Regel nicht von den bestehenden Entwicklungswerkzeugen abgedeckt werden.
Server-seitige Frameworks haben ihre Stärke vor allem darin, dass sie die schnelle Anreicherung von Applikationen mit AJAX ermöglichen, ohne dass die Entwickler zwingend mit den zugrunde liegenden Technologien umgehen können müssen.
Gleichzeitig können sie in den bestehenden Entwicklungsprozess integriert werden. Ein extremes Beispiel ist das Google Web Toolkit, das einem erlaubt, die Webanwendung in Java fast wie mit Swing zu schreiben, bevor sie mit einer Art Compiler in JavaScript übersetzt wird. Nachteilig ist die fehlende Flexibilität auf dem Client, sofern man das Server-seitige Framework nicht mit einem auf dem Client ergänzen kann. Man profitiert dafür von einem tieferen Testaufwand und deutlich höherer Produktivität.
Auswahl populärer Client- und serverseitiger AJAX-Frameworks