Wachsende Komplexität erfordert starke Software-Tools

Werbung
14
FAEL-CORNER
www.polyscope.ch
Entwicklung browserbasierter Anwendungen mit dem Google Web To olkit
Wachsende Komplexität erfordert
starke Software-Tools
Die Komplexität professioneller browserbasierter Anwendungen reicht heute an diejenige von
Desktop-Anwendungen heran. Bei der Entwicklung und beim Unterhalt der Anwendungen wird
eine durchgängige Entwicklungsumgebung immer wichtiger. Wie dies mit dem Google Web Toolkit
gelingt, zeigt das Gespräch mit Till Bay, Dennis Rietmann und Jonas Zuberbühler, Comerge AG.
» Dr. sc. ETH Michela Pedroni, Projektmanagerin
Immer mehr Firmen bieten ihre Dienstleistungen über das Web an, indem sie browserbasierte Web2.0-Anwendungen entwickeln lassen, deren Funktionalität an die
von Desktop-Programmen erinnert. Zusammen mit der Funktionalität der Web-Anwendungen wachsen auch deren Komplexität sowie der Aufwand bei der Entwicklung
und beim Unterhalt. Comerge AG benutzt
das Google Web Toolkit (GWT), um solche
Anwendungen zu entwickeln. Können Sie
mir kurz vorstellen, was das Google Web
Toolkit ist?
Till Bay: Das GWT eignet sich zur Programmierung von Web2.0-Anwendungen und enthält einen Compiler, der Java in JavaScript
umwandelt. Eine GWT-Anwendung ist
grundsätzlich wie eine klassische Web2.0Anwendung aufgebaut und beinhaltet für die
grafischen Elemente HTML- und CSS-Dateien
sowie Bilder, Videos und andere statische Ressourcen. Die Client-seitige Frontend-Logik, die
man normalerweise bei Web2.0-Anwendungen in JavaScript entwickelt, realisiert man
bei einem GWT-Projekt jedoch in Java mithilfe
einer GWT-Bibliothek und wandelt sie beim
Kompilieren in JavaScript um.
Wie läuft die Kompilation von Java nach
JavaScript ab?
Dennis Rietmann: GWT generiert aus
dem Java-Quellcode für jeden unterstützten
Browser einen optimierten JavaScript-Code.
Somit enthält das Endprodukt für jeden
Browser eine angepasste JavaScript-Version.
Das bietet den Vorteil, dass man bereits im
Kompilationsschritt auf die verschiedenen
Browsereigenheiten eingehen kann und
somit die Kompatibilität des entstandenen
Produkts zu den verschiedenen Browsern
sehr hoch ist. Ausserdem lädt der Browser
jeweils nur die für diesen Browser optimierten JavaScript-Codefragmente herunter, und
somit wird die Geschwindigkeit des Produkts erhöht.
In der Praxis führt dieses Vorgehen zu
einer signifikanten Reduktion des Datenvolumens, das heruntergeladen werden muss. So
haben wir zum Beispiel bestehende Webapplikationen abgelöst, deren früheres Datenvolumen bei Megabytes lag. Mit der GWT-Technologie liegt es heute für eine Anwendung
mit derselben Funktionalität nur noch im
Kilobyte-Bereich.
Ein ähnliches Vorgehen bietet GWT für die
Mehrsprachigkeit von Web2.0-Anwendungen.
GWT erstellt auch hier pro Sprache eine einzelne Version, und es werden beim Laden der
Webapplikation nur die Sprachdateien her-
Das Endprodukt enthält
für jeden Browser eine
angepasste JavaScript-Version
untergeladen, die für die momentan benutzte
Sprache nötig sind. Es ist also so, dass GWT
pro Browser und Sprache eine Version zur
Verfügung stellt.
Dr. sc. ETH Till Bay, Geschäftsführer
Welche generellen Auswirkungen hat die
Entwicklung von Web2.0-Anwendungen in
Java?
Jonas Zuberbühler: Der wahrscheinlich
grösste Vorteil der Entwicklung in Java ist,
dass Java statisch typisiert ist. Deshalb
lassen sich Fehler bereits zur Kompilationszeit entdecken. Bei JavaScript ist dies erst
zur Laufzeit der Fall, da dies eine dynamisch typisierte Programmiersprache ist.
Die statische Typisierung dient der RobustPolyscope 3/12
15
FAEL-CORNER
heit der Software, was vor allem bei grossen und komplexen Web2.0-Anwendungen
wichtig ist.
Ausserdem gibt es für Java sehr gute Entwicklungswerkzeuge, zum Beispiel für das
Debugging des Quellcodes, und Bibliotheken,
auf die man sich stützen kann. Die Programmierung der GWT-Anwendungen in Java
GWT stellt pro Browser und
Sprache eine Version bereit
erlaubt es uns, in Projekten Synergien zu nutzen. Wenn wir zum Beispiel bei einem Projekt
sowohl Desktop- wie auch mobile Anwendungen und GWT-Anwendungen in Java entwickeln, betreiben wir wo möglich Code Reuse
und erhöhen somit unsere Produktivität.
Zusätzlich ist natürlich ein Vorteil, dass wir
unsere Entwickler sowohl für die Entwicklung
von Web2.0-Anwendungen als auch für Desktop-Anwendungen und mobile Apps einsetzen
können – wir müssen sie nicht in JavaScript
schulen und sie können somit bekannte Entwicklungswerkzeuge nutzen.
Hat die Entwicklung der Webapplikationen
mit GWT einen Einfluss auf Ihren Entwicklungsprozess?
Rietmann: Ein integraler Bestandteil unserer
Entwicklungsarbeit besteht darin, Qualitätssicherung mittels Unit-Tests zu betreiben. Da
wir GWT und somit Java benutzen, können
wir auf JUnit zurückgreifen und die Tests
in der Eclipse-Entwicklungsumgebung entwickeln und ausführen. Ausserdem erlaubt
uns die Entwicklung in Java kontinuierliche
Integration durchzuführen. Dabei wird regelmässig eine neue Version der Webapplikation kompiliert, installiert und es werden
alle Tests durchgeführt. GWT gestattet es
uns auch hier, von unserem bestehenden
Technologie-Stack zu profitieren.
Welche weiteren Vorteile hat die Entwicklung mit GWT?
Zuberbühler: Dadurch, dass wir GWT als
Framework benutzen, um Web2.0-Anwendungen zu entwickeln, stehen wir auf den
Schultern von Google, einem Unternehmen,
das im Entwickeln von komplexen Webanwendungen führend ist. Somit profitieren wir
von der langjährigen Erfahrung eines globalen Unternehmens und steigern unsere eigene
Effizienz.
Haben Sie bei der Benutzung von GWT auch
Nachteile kennengelernt?
Bay: GWT übernimmt die Handhabung der
Browserkompatibilität. Das ist sowohl eine
Stärke von GWT als auch ein Nachteil, da
man sich bezüglich der unterstützten Browser von GWT abhängig macht. Wenn also ein
Wir profitieren von der
langjährigen Erfahrung eines
globalen Unternehmens
Dennis Rietmann, GWT-Entwickler
Polyscope 3/12
fundamental anderer Browser herauskommt,
muss man auf ein neues GWT-Update warten.
Es gibt auch die Variante, selbst neue Browser
zu unterstützen, aber das ist in GWT-Projekten relativ kompliziert und wird deshalb eher
selten getan.
Ein weiterer Nachteil von GWT liegt in
der Kompilierung. Der Kompiliervorgang von
komplexen Webandwendungen dauert relativ lange, da GWT für jeden Browser und jede
unterstützte Sprache eine Version erstellt. Bei
einem unserer aktuellen GWT-Projekte dauert
der Build 24 Minuten und erstellt 48 Versio-
Jonas Zuberbühler, GWT-Entwickler
nen. Durch das Erstellen von weniger Versionen lassen sich diese Zeiten konfigurieren.
Ausserdem kann man in der Entwicklungsumgebung den «Development Mode» von GWT
nutzen, bei dem die Interaktion mit der GWTApplikation ohne Übersetzung in JavaScript
geschieht. Generell bietet uns GWT mehr Vorteile als Nachteile, und deshalb können wir
seine Benutzung auch weiterempfehlen.
«
FAEL Kompakt
FAEL: Swiss Engineering Fachgruppe for
Elektronik & Informatik
Mitglieder: 758
Gründung: 1978
Präsident: Thomas Hauser Dipl.-Ing. HTL/STV
Kontakt: Thomas Hauser, Langackerweg 10
5003 Würenlingen, Tel. 079 573 20 27
[email protected], www.fael.ch
Infoservice
Comerge AG
Bubenbergstrasse 11, 8045 Zürich
Tel. 043 501 38 38, Fax 043 501 38 39
[email protected], www.comerge.net
Herunterladen