Monatsarchiv für März 2010

Obwohl Sun mit der Entwicklung von JSF versucht hat die Vielfalt der Webframeworks (Struts, Webwork, Spring MVC um nur ein paar zu nennen) etwas einzudämmen und einen allgemeinverbindlichen Standard zu setzen, scheint die Konsolidierung in diesem Markt auszubleiben. Vor kurzem hatte Google nun das Google Web Toolkit (GWT) in der Version 2.0 herausgebracht, für mich mal ein Grund mir das ganze auf seine Praxistauglichkeit hin anzusehen.

Auf den Ersten Blick muss ich ganz einfach sagen, gab es den “WOW” Effekt:

  • Die Installation ist kinderleicht, es wird nur ein JAR benötigt sowie ein Browser Plugin was dieser aber selbständig nachläd. Für Eclipse (nach wie vor meine primary IDE) gibt es auch gleich ein Plugin und ich hatte in 15 Minuten mein “Hello World” am laufen.
  • Das Konzept ist wirklich innovativ, man schreib Java Code aber mit Hilfe eines Java -> JavaScript Compiler wird sämtlicher Client Code in JavaScript realisiert. Man muss sich um die konkrete Erzeugung des JavaScript Codes aber überhaupt nicht kümmern, macht alles der Compiler.
  • Dadurch dass fast sämtliche Logik Client seitig läuft kommt ein “Rich Client Gefühl” auf, der Benutzer bekommt sofort Reaktionen zu sehen, die Oberfläche fühlt sich wie eine native Anwendung an.
  • Es gibt hervorraagende Ergänzungsbibliotheken man kann sehr einfach Widgets erzeugen, fühlt sich fast an wie das Programmieren einer Swing Anwendung.
  • Auch Roundtrips zum Server kann man machen, dazu muss man dann RPC Calls implementieren auch dafür liefert Google gleich die Anleitung mit, es ist aber nicht ganz trivial.

Dann habe ich versucht, ein konkretes Projekt zu übertragen, da kam dann allerdings doch die Ernüchterung:

  • Das Projekt hat ein “Accordion” Layout bei dem es aber auch möglich sein muss mehrere Bereiche gleichzeitg zu öffnen. Der Standard Container vom GWT unterstützt das nicht. Da das ganze ne “Closed Box” ist erst mal Feierabend.
  • Nächster Versuch war das ganze mit der Erweiterung “Smart GWT” zu realisieren.  Dort gibt es sehr viele erstklassige Widgets, Problem hier: Ich benötige in den einzelnen Bereichen Radio Buttons. Die aus dem Standard GWT laufen immer auf einem Fehler, die aus dem “Smart GWT” kann man nicht disabeln.
  • Ich werde bei Zeiten noch mal “EXT GWT” prüfen

Mein erstes Zwischenfazit steht aber schon fest:

Wenn man Webanwendungen realisieren möchte die sich wie “Rich Clients” anfühlen ist GWT eine gute Wahl. Die Anfangsladezeit ist zwar höher, dafür ist aber danach alles rasend fix. Man muss sich aber darüber im klaren sein, dass man den Komfort mit einer Reduzierung der Flexibilität erkauft. Man muss die Benutzeroberfläche (mehr oder weniger) mit Hilfe der vorhandenen Widgets realisieren. Ähnliche wie bei JSF gibt man die konkrete Kontrolle über die Webseite (das HTML) aus der Hand. Gerade für “normale” Webseiten ist das denke ich nicht akzeptabel, für Web “Anwendungen” aber sehr wohl.

GWT kann also das Portfolio für Webanwendungen durchaus bereichern, als alleinige Technologie reicht es dagegen nicht aus.

Seit 4 Wochen bin ich jetzt Besitzer (und auch Benutzer!) meines Google Mail Accounts. Nachdem ich wegen des Thema Datenschutz lange gezögert hatte, meine persönlichen Mails zu google zu schicken, muss ich sagen ich bin alles in allem sehr zufrieden. Gut für gewisse Dinge habe ich immer noch eine andere Email Adresse, aber im Alltag hat googlemail gegenüber meinem bisherigen Account ganz klare Vorteile:

  • das Webinterface ist nicht schön, aber leistungsfähig und performant (!)
  • die IMAP Synchronisation klappt wunderbar
  • die Zustellzeiten sind sehr gut, Verzögerungen gibts es so gut wie gar nicht
  • es gibt ein excellents Handling von Bildern
  • es ist kostenlos
  • die Filter (sowohl sortierung als auch Spam) Arbeiten zuverlässig im web

Eigentlich schade dass es im deutschsprachigen Raum meines Wissens nach keinen Mail Provider gibt, der eine ähnlich leistungsfähige Lösung hinbekommt, nicht mal etwas kostenpflichtiges.

In den letzten Wochen habe ich mein erstes Projekt mit Spring 3.0 realisiert. Damit bin ich zum ersten Mal auch im Produktiven Einsatz mit dem neuen Annotation getriebenen MVC Controller in Berührung gekommen.

Nach den ersten Wochen muss ich trotz große anfänglicher Skepsis (viel Magic) sagen, dass ganze ist gut. Man bekommt trotz fehlender Klassenhierachien (oder gerade wegen?) sehr gut lesbaren Code. Viele Dinge sind einfacher, es reicht oft das “was” zu sagen, dass “wie” erledigt das Framework.

Der Umstellungsaufwand meines Altprojektes hielt sich dabei sogar in grenzen (1-2 Tage) und es stehen jetzt viele neue Möglichkeiten offen.