Rich Internet Applications

Okay, reden wir mal über Rich Internet Applications und diesen Kram. Neugierig geworden bin ich bei Dr. Web, wo ich etwas über Flex gelesen habe, was ich nicht verstanden habe. Ich weiß zwar, dass Adobe (und vorher Macromedia) schon seit einigen Jahren einige Webentwicklungs-»Lösungen« (wie ich dieses Wort hasse) im Angebot haben, die fast keiner kennt und die in der Webrealität auch so gut wie nicht auftauchen. Aber was das genau war/ist, konnte ich nicht sagen. Es hat mich auch kaum interessiert.

Ein bisschen weitergelesen habe ich dann erst einmal in der Wikipedia, wo ich erfuhr, dass Flex ein sogenannter »Präsentationsserver« ist, der – grob gesagt – dynamisch unterfütterte .swf-Dateien zur Bedienung von Webapplikationen ausspuckt. Womit wir dann in der weiten Welt der sogenannten Rich Internet Applications (RIA) angelangt sind. Was das wiederum genau ist, weiß keiner, denn es gibt keine amtliche Definition. Glück gehabt, denn auch ich konnte bis dato mit der Bezeichnung nicht viel anfangen. Marketingsprech halt, was sonst?

Aber ich stieß dann auf einen ganz exzellent geschriebenen Artikel bei java.net, in dem es zwar eigentlich um eine Kurzeinführung in Lazlo geht, einer Open-Source-Konkurrenz zu Flex. Der Autor William Grosso liefert in seinem Artikel jedoch gleichzeitig eine perfekte Einführung darin, was RIA sind, warum sie bisher kaum jemand einsetzt und warum das teilweise auch gut so ist. Wie werden RIA hier definiert? Anhand von mehreren typischen Merkmalen (Übersetzung von mir):

  • Die Applikation wird von einem Webdokument aus gestartet (oder ist gar in einem enthalten).
  • Die Applikation liefert dem User sofortiges Feedback, wenn dieser mit der Applikation interagiert (anstatt einer zwei- bis viersekündigen Pause, während eine Anfrage von einem Server irgendwo verarbeitet wird).
  • Und sie macht Schluss mit dem »Weißer Bildschirm während wir die Seite neu laden«-Verhalten der herkömmlichen Webapplikationen.
  • Die Applikation verwendet moderne Bedienelemente, wie zum Beispiel Baumstrukturen oder Tabs, anstatt mit dem auszukommen, was gerade aktuell war, als HTML 4.0 entworfen wurde.
  • Die Applikation erlaubt dem User Operationen durchzuführen, die typisch für »Fat Clients« sind, wie Drag & Drop oder umfassende Tastaturbedienung.
  • Die Applikation sollte gleichzeitig einfach zu entwickeln sein und die universelle Reichweite von herkömmlichen Webapplikationen besitzen.
  • Die Applikation tut all diese Dinge, ohne dabei auf große Mengen von plattform- oder browserabhängigem JavaScript angewiesen zu sein.

In einer gewissen Weise riecht das nach bösen Java-Applets aus dem ersten Webjahrzehnt, sowie nach vermeintlich bösem Flash. Doch wer hätte gedacht, dass die Spezifikation des SWF-Dateiformates seit geraumer Zeit öffentlich dokumentiert ist und von jedermann eingesehen werden kann, sofern er sich kostenlos registriert? Schande über mich, dass ich das bisher nicht wusste, aber es ist tatsächlich so!

Also: SWF ist mitnichten so böse und proprietär, wie immer behauptet wird! Nur weil SWF kein menschenlesbares Format ist und nicht vom W3C als Standard verabschiedet wurde, heißt das nicht, dass man nicht ohne Probleme einen SWF-Generator bauen kann. Und wenn man dynamisch SWF-Dateien erstellen kann, lässt sich daraus auch eine Webapplikation basteln. Und genau das macht Lazlo.

Eigentlich eine tolle Sache! Kein unterschiedliches Browserverhalten mehr, visuelle Nettigkeiten, hohe Performance der UI-Elemente, hohe Verbreitung des Flash-Plugins usw. Warum gibt es dann überhaupt noch langweilige HTML-Apps da draußen? Worauf warten wir noch? Wieso nutzen wir nicht die tollen, eleganten, gestalterisch anspruchsvollen und nutzerfreundlichen Möglichkeiten, die uns RIA mit Flash bieten? Sogar hierauf hat der Lazlo-Artikel (am Ende) ein paar Antworten parat. Das Fazit des Autors:

Zusammengefasst, HTML und HTTP werden allgemein eingesetzt, weil sie unglaublich nützlich sind. Um ein besseres Entwicklungsmodell für Applikationen zu finden, benötigen Sie eine Anwendung, für die das Web nicht so gut funktioniert!

Chancen sieht William Grosso vor allem in Gebieten, wo es nicht so sehr auf Semantik/SEO ankommt, sondern auf das Handling einer komplexen Benutzerführung, wie bei Webmail- oder Kalender-Programmen. Blogs seien hingeben wohl besser mit klassischem HTML bedient.

Gut, der Artikel ist von März 2005, als von Ajax noch nicht so die Rede war. Und in der Tat löst diese alt-neue Technik eine Menge der klassischen UI-Probleme bei HTML-basierten Webapplikationen. Dennoch sehe ich ganz klar die guten Argumente, die man in manchen Bereichen für eine flashbasierte RIA anbringen kann. Das Problem ist nur, dass die Anzahl der Personen, die sich mit dem dynamischen, serverseitig generierten Flash auskennt, sehr gering sein dürfte. Es fehlt die Community und der Spirit wie bei Ruby on Rails! Sicher gibt es nicht minder engagierte Leute aus der Flash-Ecke, doch irgendwie kommen die nicht aus ihrem Designerklischee heraus. Die Flash-Technologie wird im allgemeinen nicht mit modernen und flexiblen Open-Source-Frameworks in Verbindung gebracht. Zu Unrecht, wie ich jetzt finde.

Somit denke ich, dass flashbasierte RIA, ob nun mit Flex, Lazlo oder einer anderen Lösung umgesetzt, auch weiterhin ein Nischendasein führen werden. HTML/CSS/JavaScript sind eben seit vielen Jahren ein bewährtes und zigtausendfach erprobtes Team, und die ganzen modernen Frameworks (Rails, YUI, Script.aculo.us usw.) tun inzwischen ihr übriges, damit Flex und Co. gar nicht erst als nötig erachtet werden. Ob das nun gut oder schelcht ist, vermag ich kaum zu sagen. Aber ich werde mal drüber nachdenken, soviel ist klar.

... und eben sehe ich, dass man mit der neuesten Version von OpenLazlo sogar wählen kann, ob man am Ende Flashdateien oder ajaxfiziertes HTML herausgerendert bekommen möchte. Die Welten verschmelzen. Da tut sich was. Und wir sollten alle mal über den Tellerrand gucken, es lohnt sich bisweilen!

Disclaimer: Ich weiß, dieser Blogeintrag ist nicht gerade meinungsbildend und strotzt auch nicht vor konkreten Tipps und Handlungsempfehlungen. Aber wer sich durch die verlinkten Seiten liest, merkt schnell, worum es mir geht: Scheuklappen ablegen und mal gucken, was es da draußen außer PHP, Rails und JavaScript noch so alles gibt!

update: Bitte auch die Kommentare beachten!