Wie AJAX-Applikationen zu Magengeschwüren führen
Gestern am JUGS Event RIA for Business Applications hat Björn Müller von CaptainCasa die Grenzen der AJAX-User Experience unter vollem Körpereinsatz demonstriert. Das wichtigste Ergebnis des sehr unterhaltsamen Vortrags war die Feststellung, das die AJAX-Technologie wegen der beschränkten JavaScript-Performance der Browser bereits an der Grenze ihrer Möglichkeiten angelangt ist:

AJAX gibt es etwa seit se den IE 5.5 gibt (nur hatte die Technik damals noch keinen Namen, das lief unter 'coole IE Features'
). Seit dem Hype steigen die Erwartungen an AJAX ins unermessliche. Google ist ja bekanntlich dran ein ganzes Office-Packet in AJAX zu implementieren. Wer's schon ausprobiert hat, weiss: Der Warten-und-Kaffee-trinken-Anteil ist unerträglich hoch....
Im Vergleich zu den JavaScript-Interpretern hat zum Beispiel Java enorme Performance-Boosts erfahren, den extremsten als mit der Version 1.2 der JIT eingeführt wurde. Die JavaScript-Engines der Browser hingegen sind seit Jahren praktisch unverändert geblieben:
-
Es gibt keinen (JIT-)Compiler
-
Der Code (auch Funktionsdefinitionen) wird bei jedem Seitenaufbau komplett geparst und abgearbeitet. Es gibt kein Caching auf dieser Ebene
-
DOM-Operationen sind extrem langsam (Bsp: document.getElementById() dauert fast 1ms)
-
100e von Memory-Leaks lassen den Speicherverbrauch bei länger laufenden Applikationen ständig anwachsen
Gemäss Björn Müller sind hier auch keine Anstrengungen in diese Richtung bei den Browserherstellern erkennbar. Microsoft habe kein grosses Interesse daran, da für sie der Browser sowieso ein Auslaufmodell darstellt und sie nun vor allem Silverlight vorantreiben. Und bei Mozilla sei auch keine Aktivität in dem Bereich zu beobachten.
Dem hielt der nachfolgende Speaker (Ryan Stewart von Adobe) entgegen, Adobe habe die ActionScript-Engine inklusive JIT-Compiler als Open-Source an die Mozilla-Foundation abgegeben. Daraus ist das Mozilla-Unterprojekt Tamarin entstanden. Das war vor etwa einem Jahr. Das Projekt ist allgemein ziemlich aktiv, aber ob sich nun aber etwas tut in Richtung JIT-Compiler ist leider nicht erkennbar...
Ach ja, und wie führen nun AJAX-Applikationen zu Magengeschwüren?
Björn: Es ist diese kleine Verzögerung bei jedem Klick bis das UI sichtbar reagiert, welche einem ... jedesmal ... den ... Magen ... zusammenzieht. Und wenn man mal einige Wochen mit einer solchen Applikation gearbeitet hat, muss man anschliessend zum Arzt. 