Sekundärmenü

Webanwendungen mit dem Google Web Toolkit (GWT)

Überblick über GWT und Potentiale für die Entwicklung von webbasierten Anwendungen

In diesem Beitrag werde ich meine Erfahrungen mit dem Google Web Toolkit beschreiben. Die Technologie existiert bereits seit 2006, ist für JavaScript-basierte Rich Internet Applications (RIA) gedacht und basiert auf dem Grundgedanken den Workflow serverseitiger und clientseitiger Entwicklung zu vereinheitlichen.

Bisher

Als langjähriger PHP, Flash und Javascript-Entwickler kenne ich das Problem: Der Code welcher für die Darstellung des User-Interfaces notwendig ist (HTML, Javascript, Actionscript ..) steht in strikter Abgrenzung zur Software am Server (PHP, Python, Java/JSP ..). Zusätzlich müssen Schnittstellen definiert werden die auf Basis von Server-Requests die Kommunikation zwischen den Komponenten sicherstellen.

Mit Google

Google legt die Spielregeln anders fest: Serverseitig wird in Java programmiert, der Code als Bytecode direkt ausgeführt. Für Schnittstellen steht das proprietäre GWT-RPC Protokoll zur Verfügung welches die Kommunikation zwischen Client und Server regelt. Eigene Kommunikation auf Basis von JSON sind ebenfalls möglich. Mittels der RPC-Architektur des GWT können Funktionen am Server direkt von der Clientseite angesprochen werden, Rückgabewerte können auf Clientebene mittels Callbacks direkt weiterverarbeitet werden.

Clientseitig wird ebenfalls in Java programmiert, ein spezieller "Compiler" wandelt schließlich den Java-Code in ein entsprechendes JavaScript-Äquivalent um. Das spart Entwicklungsaufwand, da weder HTML noch JavaScript-Code geschrieben werden müssen: Unter Verwendung der GWT-Basisklassen können alle wichtigen Funktionen definiert werden.

Fazit

Trotz anfänglicher Skepsis ist mein erster Eindruck durchaus positiv: Selbst ohne tiefergreifendes Verständnis für Webanwendungen können mit dem GWT schnell beeindruckende Ergebnisse geliefert werden. Die Möglichkeit die leidige Client-Server Kommunikation und Client-Entwicklung (Browserkompatibilität!) durch vordefinierte Komponenten von Google erledigen zu lassen ist Gold wert und spart nicht nur anfänglichen Entwicklungsaufwand, sondern auch Zeit bei der Erweiterung und Wartung der Anwendung.

Bei entsprechender Weiterentwicklung durch Google und der schnellen Integration von HTML5-Komponenten (was sehr wahrscheinlich ist) besteht in GWT ein mächtiges Tool, welches durch die zusätzliche Abstraktionsebene einige Unannehmlichkeiten der normalen Webentwicklung geschickt umschifft.

Für komplexere Systeme ausserhalb abgeschlossener RIAs, die grafisch und funktionell umfangreich angepasst werden sollen sind jedoch derzeit andere Systeme (Bsp. Drupal für Top-Down Entwicklung) in Verbindung mit Javascript-UI-Libraries (JQuery UI - In Drupal 7 bereits enthalten, Ext JS) vorzuziehen.