Besuch der GWT.create 2013

Mit der Konferenz GWT.create 2013 in Frankfurt fand am 17. und 18. Dezember ein Come together für die europäische Community rund um das Google Web Toolkit (GWT) statt.

Eine Woche nach der Durchführung der GWT.create in San Francisco fand in Frankfurt die erste europäische Austragung statt. Puzzle ITC setzt die GWT-Technologie bereits seit mehreren Jahren erfolgreich zur Entwicklung reichhaltiger Web-Frontends ein und hat bereits umfangreiche Praxis-Erfahrungen sammeln können. Claudia Weber und Oliver Schmid besuchten die GWT.create und fassen Ihre Eindrücke zusammen.

GWT hat Zukunft

Der Andrang auf die Konferenz war gross: Mit über 400 Teilnehmer waren es fast doppelt so viele Besucher wie in den USA und die Konferenz war somit ausgebucht. GWT besitzt heute eine breite Basis in verschiedensten Anwendungsbereichen und ist mehr als nur eine Randerscheinung des Java-Webapplikationsstacks. Dies zeigten Diskussionen mit anderen Teilnehmern der Konferenz, die Präsentationen an den Demosessions und die auffällige Beteiligung – neben Google selbst – von Firmen wie Vaadin und Sencha.

Die Organisatoren liessen keinen Zweifel am Sinn und Zweck der Konferenz aufkommen: Die bestehende Community rund um das Open Source Projekt soll gestärkt und vergrössert und Unklarheiten in Bezug auf die Zukunft des Toolkits sollen ausgeräumt werden.

Neben der Vorstellung des Future of GWT Reports (eine Umfrage über die Verwendung des Toolkits innerhalb der Community und deren Wünsche für Verbesserungen), wurden Beispiele für die Verwendung von GWT, wie die Neuimplementierung des Google Docs Spreadsheets und Google Wallet, präsentiert. Auch wurden Interessierte im Rahmen eines Workshops für die Rolle als ‘Committer’ vorbereitet und ihnen die Mitarbeit an der Verbesserung des Toolkits schmackhaft gemacht.

Im Fokus der verschiedenen Talks und Workshops standen insbesondere Themen, welche sich im oben genannten Report als deutlichste Mängel von GWT heraus kristallisierten. Dazu zählen zum Beispiel das Testing (13% testen das UI nicht, 49% nur manuell), die immer noch zu lange dauernde Kompilierzeit oder aber neue Herausforderungen wie die vermehrte Entwicklung mobiler Applikationen.

Testing

Benutzerschnittstellen zu testen ist nicht immer ein leichtes Unterfangen – umso mehr, wenn die nötigen Tools dazu fehlen. Das Schreiben von Unit-Tests für GWT-Komponenten wurde bisher hauptsächlich dadurch erschwert, dass diese, sobald sie gewisse GWT-Elemente wie Widgets oder GWT.create(…)-Aufrufe enthielten, nur im Kontext des Development-Modes (als GWTTestCase) und somit mit einer erheblichen Verlängerung der Ausführungszeit ausführbar waren.
Das präsentierte Projekt GWTmockito nimmt sich diesem Problem an, indem die entsprechenden Widgets sowie durch GWT.create erstellten Objekte gemockt werden können und somit die Ausführung als herkömmliche JUnit-Tests möglich gemacht wird.
Dank der zusätzlichen Vorstellung von Best Practices für das Entwickeln von funktionalen Tests gibt es nun auch für GWT-Frontend-Entwickler keine Ausrede mehr für fehlendes automatisiertes Testing; der Verweis auf mangelhafte Tools fällt weg.

Development- und Build-Cycles

Weitere Punkte, die in nächster Zeit ebenfalls angegangen werden müssen, sind:

  • das Problem der zu langen Kompilierzeit einer GWT-Applikation verursacht durch komplizierte Interprozess-Kommunikation sowie die Trägheit des Plugin-basierten (konventionellen) Development-Modes aufgrund der absehbaren Absetzung von Browser-Schnittstellen in Chrome
  • die Herausforderung, mit dem Release-Takt von Firefox mitzuhalten
  • die Unterstützung der Entwicklung auf mobilen Geräten

Der in Release 2.5 eingeführte Super-Dev Modus soll in Zukunft der Entwicklungsmodus der Wahl sein: Im Super-Dev Modus wird der Java-Code bereits während der Ausführung im Entwicklungsmodus in JavaScript kompiliert und dank Source-Maps in den verschiedenen Browser-Entwicklungstools verfügbaren Mechanismen debugbar gemacht. Um dieses Konzept aber alltagstauglich zu machen, wird eine deutlich reduzierte Kompilierzeit von Java zu JavaScript nötig. Dazu soll der aktuelle ‘ich kompiliere die gesamte Welt’-Compiler mit einem inkrementellen Compiler ersetzt werden, welcher unveränderte Module und Komponenten nicht mehr neu baut, sondern lediglich Codeanpassungen und deren Auswirkungen auf andere Programmteile berücksichtigen soll. Die oft beanstandete zu lange Kompilierdauer zur Buildzeit soll so wesentlich reduziert werden und somit Entwickler, CPU und Arbeitsspeicher entlasten.

Entwicklung von mobilen Webapplikationen

Als grösste Herausforderung für GWT kann aktuell wohl die Entwicklung mobiler Applikationen gesehen werden. Obwohl GWT zahlreiche Features mitbringt, welche die Entwicklung von Webapplikationen für eine Vielzahl verschiedener Geräte erleichtert, ist die Entwicklung für das ‘mobile Web’ mit GWT bis heute noch nicht optimal unterstützt. Projekte wie mGWT sollen dies aber ändern:
Aufgrund der Verfügbarkeit moderner Browsertechnologien in mobilen Geräten können deutlich leichtgewichtigere und performantere Strukturen und Logiken implementiert werden, welche dazu beitragen sollen, die Bedienbarkeit und Responsivität von web-basierten GUIs denen von nativen Applikationen anzugleichen. Entsprechend nutzt mGWT neue Möglichkeiten von CSS-Styling und minimalen DOM-Strukturen, um mobilen Applikationen das Look and Feel von nativen Apps zu ermöglichen.
Neben der reinen Adaption von GUIs an die mobilen Plattformen bringt die teilweise instabile und/oder langsame Kommunikation mit dem Server weitere Probleme mit sich. So wurden Wege vorgestellt, wie GWT-Applikationen für den Verlust der Netzwerkverbindung vorbereitet und sogar komplett Offline betrieben werden können.

Fazit

Obwohl auch heute, neun Jahre nach dem ersten Release von GWT, noch nicht alle Probleme gelöst und bestimmt auch zahlreiche neue dazu gekommen sind, so hatten wir nach der Konferenz doch das Gefühl, dass GWT deutlich erwachsener geworden ist. Der Fokus liegt nun in einem gesunden Masse auf der Konsolidierung von Altlasten, der Verschlankung von komplizierten Strukturen, der Aufarbeitung von Versäumnissen und gleichzeitig auf der Anpassung an neue Entwicklungen.

Auch spürte man deutlich, dass GWT eben nicht (mehr) nur Google ist und sich stattdessen einer deutlich breiter abgestützten, wachsenden Community erfreuen kann. Nichtsdestotrotz war es überaus schön zu sehen, dass auch bei Google weiterhin auf die Technologie gesetzt wird und ihr Engagement im Rahmen der Community weiter geht.

Motiviert von den Fortschritten und Zukunftsaussichten von GWT und auch weiterhin überzeugt von der zugrunde liegenden Technologie, wollen auch wir unseren Beitrag leisten und uns im Rahmen der Community für die Verbesserung des Google Web Toolkits einsetzen.

Kommentare sind geschlossen.