Archiv

Der Ajax-Sonderfall: Google Web Toolkit (GWT)

Im letzen Blogpost ging es um die zunehmende Bedeutung von Java-Script und Ajax im Bereich der Rich Internet Application Technologien. Bereits mehrfach bemängelt wurde das Entwicklungsmodell und der Toolsupport für Java-Script. Es gibt zwar mit Netbeans, Aptana u.v.a.m. Tools, die die Programmierung mit Java-Script unterstützen, sie sind aber von ihrem Featurereichtum meilenweit von dem entfernt, was bei anderen Sprachen möglich ist. Ein Grund liegt auch in der Sprache, die viele Dinge, die Integrated Development Environments (IDE) möglich machen, unterbindet. Und letztlich – ganz subjektiv – macht die Programmierung mit Java-Script nicht sonderlich viel Spaß und die vielen Frameworks lindern diese Not nur teilweise.

Google hat schon sehr früh das Potential von Ajax erkannt und gleichzeitig die oben genannten Problempunkte adressiert und eine Möglichkeit geschaffen, Ajax Anwendungen zu erzeugen, die Ihresgleichen sucht: Das Google Web Toolkit oder kurz GWT. GWT ist mittlerweile in Version 1.6 erschienen und man kann schon seit einiger Zeit von einer ausgereiften Technologie sprechen. Nahezu alle Google Webanwendungen (inklusive von Google Wave) sind mit GWT erstellt worden.

GWT löst die lästige Java-Script Programmierung indem man in einer ausgewachsenen Sprache – namentlich Java – programmiert und dann seine Java Sourcen in eine Ajax Anwendung “kompiliert” (wobei natürlich kein binäres Kompilat entsteht sondern nur hochoptimiertes Java-Script). Durch diesen Geniestreich löst Google die Unzulänglichkeiten von Java-Script, denn es wird ausschließlich in Java programmiert. Zum anderen löst Google die Unterstützung durch Tools, denn es liefert nicht nur ein GWT-PLugin für Eclipse mit, vielmehr sind auch alle anderen für Java gedachten Eclipse-Plugins möglich. Auch weitere Tools aus dem Java Umfeld wie Continious Integration, Code Metrics und Analyse sind möglich. Auch die weiteren Vorteile der Java-Technologie wie die leichte Backend-Integration, die Verfügbarkeit qualifizierter Entwickler und die umfangreichen Bibliotheken dienen dem GWT-Ansatz.

Mit dem GWT muss sich der Web 2.0 Entwickler nicht mit Java-Script beschäftigen, auch nicht mit Cross-Browser-Kompatibilität und den ganzen Folgeproblemen, sondern kann wie gewohnt seine Java-Klassen schreiben und entwickelt so mächtige Anwendungen wie GoogleMail etc.

Ajax / Java-Script: Der lachende Vierte

Während sich Microsoft Silverlight, Adobe Flex und JavaFX eine erbitterte Schlacht nach der anderen um die Vorherrschaft im RIA Markt liefern, hat sich klamm heimlich eine vierte, an sich längst bekannte Technologie daran gemacht, das Feld von hinten aufzurollen. Die Rede ist von Java-Script auch in der Form von Ajax, was Dank des Zusammenspiels mit dem Canvas Element aus HTML 5 Dinge tun kann, von denen Webentwickler bisher nur zu träumen wagten – und das alles ohne Plugin, nur mit hauseigenen Browsermitteln.

Wer sich ein Bild von den Möglichkeiten verschaffen will, dem sei Chrome Experiments empfohlen – Voraussetzung dafür ist Safari 4, Google Chrome oder Firefox 3.5 Beta aufwärts. Wenn man das sieht, fragt man sich unwillkürlich: “Wie, ohne Flash gemacht?”. Die Antwort ist: “Ja”! Bis hin zu ausgefallenen 3D Modellen, die in Echtzeit animiert werden ist mit dem Gespann Canvas und Java-Script nahezu alles möglich und das mit guter Performance / Frames per Second.

Einen Grund für die enormen Verbesserungen in den genannten Technologien, sind die immer neuen Java-Script Engines, die die Sprache von Version zu Version deutlich beschleunigen. Auch die Java-Script Frameworks werden immer besser und schneller – genannt als Beispiel sei hier Sizzle aus dem jQuery Framework. Heutzutage langen ein paar Zeilen Code um Animationen oder Widgets zu erstellen, wie man sie bisher nur von Flash und Flex kannte.

Auch die letzte Hürde wird in Angriff genommen: Videos im Web mittels Flashplayer. Dank HTML5 geht auch das nativ, wie folgender Artikel zeigt. Auch der Platzhirsch Youtube hat eine HTML 5 Demonstration.

Das alles steht noch relativ am Anfang, die ersten Browser, die HTML 5 beherrschen sind aber vorhanden. Eine Extrawurst stellt der Internet Explorer dar, der auch in seiner achten Inkarnation nichts mit dem Canvas-Element anfangen kann. Aber es kann ja auch sein, dass sich der Markt einfach durchsetzt. Wenn etwa eine Technologie wie Google Wave ganz massiv das Canvas Element und HTML 5 unterstützt und diese die Traktion erfährt, die erwartet wird, kann Microsoft auch einmal in die Lage kommen, etwas nachzurüsten.

Alle RIA Entwickler und Entscheider sollten sich der Möglichkeiten des “neuen” Java-Scripts bewusst sein und sich ernsthaft fragen für was sich die Konzentration auf proprietäre Runtimes lohnt.

Verbreitung vom Flex, Silverlight und JavaFX

Der Kampf im RIA-Space ist entbrannt und alle drei maßgeblichen Mitbewerber versuchen ihre Position zu stärken und auszubauen. Sucht man aber nach Zahlen, welche Technologie welche Verbreitung gefunden hat, wird es leicht schwer. InfoQ hat nun einen Artikel veröffentlicht, der basierend auf Zahlen von RiaStats, einen Überblick in die Verbreitungszahlen erlaubt.

Der Flashplayer und damit Flex führt das Feld unangefochten ein mit einer Verbreitungsrate von 97%. Java und damit zum Teil JavaFX kommt auf einen Wert von 75% und Silverlight holt stetig auf und kommt nunmehr auf 21%. Was erstaunt ist die Tatsache, dass Java unter Linux gerade einmal auf 28% kommt. Obwohl es mittlerweile Open Source ist, wird es scheinbar noch nicht oft installiert. Da mögen die ersten Distributionen mit vorinstalliertem Java helfen. Dass Java unter Mac OS X auf einen Wert von mehr als 90% kommt ist nicht verwunderlich, eher die Tatsache, dass es keine 100% sind :o)

Auch bemerkenswert ist die Tatsache, dass Flash 10 mittlerweile weiter verbreitet ist als Flash 9. Adobe wirbt auch damit, dass sich Flash 10 in nur zwei Monaten auf 50% aller internetfähigen Rechner installiert hat. Hier sieht man deutlich, wie sich ein einfacher Installations- und Updatemechanismus in den Verbreitungszahlen niederschlägt. Man kann nahezu sicher, sein dass der Flashplayer 10 wenn er für Flex 4 benötigt wird, dann auf über 90% aller internetfähigen Rechner installiert sein wird. Eine traumhafte Voraussetzung für die nächste Version der populären RIA-Technologie.

Es wird spannend sein zu sehen, wie sich das Bundling von Windows 7 und Silverlight in den Installationszahlen niederschlagen wird. Hier kann für Microsoft die Chance sein, zu den führenden auszuschließen. Auf der anderen Seite liegt Adobe mit seiner Flashtechnologie so weit vorne, dass man tatsächlich sagen kann, dass Flash ubiquitär ist. Für den Moment bleibt Flex die erste Wahl unter den RIA Technologien.

RIAs bestimmen das Verhältnis von Kreation und Technik neu

Es ist einer der Klassiker schlechthin im Bereich des Agentur-Geschäfts: Der Konflikt zwischen Kreation und Technik.

Die kreative Unit einer Agentur ersinnt die tollsten Konzepte für die Kunden und die Unit für die technische Umsetzung hat ihre Probleme mit der Umsetzung. Einer der Gründe für das belastete Verhältnis ist sicher der, dass die Technik um die Grenzen ihrer Machbarkeit weiß und die Kreation die ungebremste kreative Kraft ungezügelt auslebt.

Für RIAs wird dieses Thema nun in einer nochmals verschärften Form virulent. RIAs erfordern ein produktives Zusammenspiel von Kreation und Technik, wie noch nie in der Anwendungsentwicklung zuvor.

Der Grund hierfür liegt vor allem darin, dass RIAs Anwendungen sind, die so wie nie zuvor auf die Kreation angewiesen sind. Der primäre Grund liegt am “rich” der Rich Internet Applications. Nur gut gestaltete und leicht bedienbare Anwendungen entsprechen den Kriterien einer erfolgreichen RIA.

Klassische (Unternehmens-) Anwendungen erforderten kaum das Eingreifen der kreativen Abteilung, wenn es sie denn überhaupt gab. Die Entwickler machen sich Gedanken um die Anordnungen von Informationen und vertrauen auf das GUI Toolkit was die Präsentation angeht. Das ist etwa der Grund warum es etwa so viele Swinganwendungen gibt, die funktional gut sind, aber niemandem wirklich “gefallen” und alles andere als leicht bedienbar sind.

RIAs nun haben den Anspruch, dem Anwender eine User Experience zu vermitteln, die sich primär über eine gefällige und sachdienliche Gestaltung definiert sowie über leichte und intuitive Handhabbarkeit.

Hier ist nun das Zusammenspiel von Kreation und Technik gefragt. Die Anbieter von RIA-Technologien tragen diesem Zusammenspiel Rechnung, indem sie eine spezialisierte Toolchain für diese Anwendungen bereitstellen. Alle Majorplayer im RIA-Markt, seien es Adobe, Microsoft oder Sun entsprechen diesen Anforderungen durch spezialisierte Anwendungen.

Microsoft bietet mit seiner Expression Suite ein Toolset, was Silverlight Anwendungen ideal mit gestalterischen Assets versorgt. Sun bringt mit dem Project Nile spezielle Exportfilter für die gängigen Adobe Grafikprogramme auf den Markt, um JavaFX direkt von der Mächtigkeit der Creative Suite profitieren zu lassen. Und last but not least bietet Adobe mit einem optimierten Workflow von Creative Suite hin zu Flex, ein Optimum an Workflow-Integration zwischen Kreation und Technik. Adobe geht mit dem kommenden Flash Catalyst sogar noch einen Schritt weiter und will mit einer Anwendung, mit der im kreativen Prozess erstellte Grafiken mit Applikationslogik versehen werden können die Lücke zwischen kreativem Ausdruck und programmatischer Realisierung schließen.

Es ist interessant zu sehen, wie sie Technologieprovider die neuen Anforderungen durch eine Optimierung der Tools nachvollziehen oder sogar vorzeichnen. Die Workflow-Integration von Kreation hin zur Technik wird eines der Key-Features im Kampf um den RIA Markt sein, und die Protagonisten sind gut aufgestellt.

Adobe stärkt RIA Backendtechnologien

Jede RIA Technologie hat verschiedene Möglichkeiten, ihre Daten aus einem Backend zu beziehen. Neben den Klassikern wie XML over HTTP, JSON oder SOAP bietet manche Technologien noch zusätzlich, sehr effiziente Methodiken an.

Bei Adobe Flex ist das Austauschverfahren der Wahl AMF (Action Message Format) – ein binäres, sehr effizientes und schnelles Datenformat. Es wird nicht nur deutlich schneller verarbeitet als etwa XML oder SOAP sondern auch die Übertragungszeiten sind deutlich geringer. Wer sich hinsichtlich Flex einen Überblick über die Benchmarks zu verschiedenen Backendtechnologien verschaffen will findet hier eine interaktive Applikation.

Bislang war BlazeDS (oder für den Enterprise-Gebrauch LiveCycleDS) das Mittel der Wahl um in Java Backendcode zu schreiben. Für andere Sprachen gab es zwar auch Lösungen, aber die waren nicht offiziell anerkannt und basierten zum Teil auf Reverse Engineering.

Mit der AMF Unterstützung für das Zend Framework liegt nun erstmals eine offizielle Adobe AMF Implementierung für PHP vor. Das Zend Framework ist unter PHP 5 das Framework der Wahl, wenn es darum geht performante und wartbare Applikationen zu schreiben. AMF wird nun direkter Bestandteil des Zend Frameworks und trifft nun auf Massen an PHP Entwicklern, die nun auch zu RIA Entwicklern werden können.

In einem zweiten Schritt, AMF mehr zu einer Mainstream-Technologie zu machen, haben Adobe und SpringSource (die Firma hinter dem populären Java Framework Spring) eine Zusammenarbeit angekündigt. Ziel der Kooperation ist es, das Zusammenspiel von Spring und BlazeDS / LiveCycle DS im Blick auf Entwicklung und Deployment drastisch zu vereinfachen. 

So wird neben PHP auch eine zweite dominante Webtechnologie zum Mittel der Wahl für Backenddienste für Adobe RIAs. Eine interessante Entwicklung, die sicher noch nicht an ihrem Ende angekommen ist.