Vaadin und GWT – GWT.create-Konferenz 2015

Ende Januar lud Vaadin zum nunmehr zweiten Mal die Entwicklergemeinschaft ein, sich auf der GWT.create-Konferenz über die Neuerungen in GWT (Google Web Toolkit) sowie über neue Entwicklungen in damit ausgestatteten Frameworks zu informieren. Die Konferenz war auf zwei Tage angelegt und fand zuerst in San Francisco und danach in München statt.

In diesem Jahr besuchten über 650 Entwickler die beiden Veranstaltungen, und ich war wieder einer von ihnen.

Als „Vaadin Solution Partner“ ist die it-economics natürlich an den Neuerungen des Vaadin-Frameworks interessiert. An den beiden Tagen gingen die Veranstalter jedoch nicht nur darauf ein, sondern äußerten sich in interessanten Beiträgen auch zur Zukunft von GWT und damit auch zur Zukunft der auf GWT basierenden Frameworks wie Vaadin.
 

Tag 1 – Web Components & Singular

Der Tag begann mit der Keynote von Ray Cromwell (Google). Darin ging es diesmal nicht nur um die Zukunft von GWT, auch das im letzten Jahr mit GWT2.7 Erreichte wurde vorgestellt. Vor allem an der Geschwindigkeitsschraube und der Größe von kompiliertem Code ist viel gearbeitet worden. Beeindruckend waren die vorgestellten Zahlen zur massiv verbesserten Geschwindigkeit von JavaScript Code in Webbrowsern, sowohl im klassischen Desktop-Browser als auch in Mobile Browsern [1].

Für Version 3.0 von GWT, das volle Java8-Unterstützung bieten wird, wurde kein finaler Veröffentlichungstermin genannt. Das Jahr 2015 hat jedoch erst begonnen, sodass es dieses Jahr noch klappen kann. Neben neuen Features und weiterer Performance-Verbesserung (u.a. beim Compiler) steht besseres Debugging auf der Agenda.

Richtig interessant wurde es gegen Ende der Keynote, als Daniel Kurka (Google) das neue Projekt „Singular“ vorstellte. Mit Singular soll es Java-Entwicklern ermöglicht werden, eine Web-Anwendung bzw. deren Komponenten genauso elegant zu entwickeln, wie es aktuell mit Angular-JS in JavaScript möglich ist. Und das mit einer verbesserten Performance und Skalierbarkeit [1]. Die UI wird zu einer leichter austauschbaren Komponente, die individuell an das gewünschte Endgerät angepasst werden kann. Noch steht „Singular“ am Anfang seiner Entwicklung, aber man darf gespannt sein, wie es sich weiter entwickeln wird. Insbesondere, da Java-Entwickler mit „Singular“ auch auf „Web Components“ [2] zurückgreifen können. Diese bildeten einen weiteren Schwerpunkt, nicht nur am ersten Konferenztag, sondern in den Vorträgen der gesamten Konferenz.

Nach der Keynote entschied ich mich für einen Vortrag über „Polymer and Elements“ von Chris DiGiano (Google), in dem die „Web Components“ im Vordergrund standen. Es wurde gezeigt, wie man sie mit den Frameworks leichter mit JavaScript einsetzen kann.

Noch ist die Browser-Kompatibilität für „Web Components“ nicht sehr gut; diese Lücke möchte Polymer aber füllen.

Nach Ausflügen in die Neuerungen beim Debuggen mit dem Super DEV Mode in GWT beendete ich den ersten Tag der Konferenz mit einem Vortrag über eine neue sehr interessante Vaadin-Komponente: das Grid.

Grid wird die Tabelle ersetzen und bietet u.a. eine bessere Performance und einfachere Möglichkeiten zum Anbinden von Datenquellen. Des Weiteren steht eine bessere Nutzung der Hardware sowohl auf dem Desktop als auch auf Mobile-Touch-Geräten weit oben auf der To-do-Liste der Entwickler. Grid hat bereits einen sehr guten Stand erreicht und wurde mit Version 7.40 des Frameworks veröffentlicht [6].

Tag 2 – Vaadin & das GWT-Ökosystem

Der zweite Tag stand im Zeichen der Frameworks, die GWT nutzen. In der Keynote wurde eine Auswahl davon vorgestellt und eine Brücke zu den folgenden Vorträgen geschlagen. Außerdem wurde die aktuelle Version des Future-of-GWT-Report-2013 vorgestellt, der die Nutzung von GWT in unterschiedlichen Szenarien beleuchtet [3].

Nach der Keynote konzentrierte ich mich auf die Vaadin-spezifischen Vorträge. Sehr interessant war hier der Vortrag „Java EE with Vaadin“, der die Möglichkeiten aufzeigte, wie man Vaadin auch in großen Enterprise-Umgebungen einsetzen kann. Neben Entwurfsmustern wurde die Java-CDI-Erweiterung von Vaadin gezeigt.

Im Anschluss gab es eine Erweiterung zu sehen, die mit Vaadin 7.40 zum Einsatz kommen kann: Der „Vaadin Designer“. Mit diesem Plugin (aktuell für Eclipse Luna, andere Umgebungen sind geplant) ist es möglich, sehr einfach eine Vaadin-Maske mit grafischer Unterstützung zu erstellen. Dabei wurde auf nahtlose Integration in die Entwicklungsumgebung geachtet. Praktisch ist auch, dass man mit einem mobilen Gerät oder einem anderen Desktop-Rechner auf eine Preview der Maske zugreifen kann. Die Geräte müssen sich dazu nur im selben Netzwerk wie der Rechner des Entwicklers befinden.

Abbildung 1: Vaadin Designer in Eclipse Luna

Abbildung 1: Vaadin Designer in Eclipse Luna

Noch ist der Vaadin Designer in einer sehr frühen Entwicklungsphase, kann aber bereits getestet werden [4].

Der letzte Vortrag des zweiten Konferenztages war für mich „Vaadin with Polymer, GWT and AngularJS“ von Joonas Lehtinen & Leif Åstrand (Vaadin). Der CEO von Vaadin stellte hier Neuerungen wie Grid und den Vaadin Designer in einen Zusammenhang mit neuen „Herausforderungen“ für das Vaadin Framework. Zu diesen Herausforderungen zählt er populäre Mitbewerber wie Angular JS. Vaadin möchte diesem seine große Widget-Sammlung entgegenstellen und diese als „Web Components“ den Entwicklern zur Verfügung stellen. Die ersten Schritte dahin kann man in den Vaadin Labs bereits genauer untersuchen [4], für produktive Umgebungen bieten sie sich jedoch noch nicht an.

Der Tag endete mit einer Fragerunde an das GWT Steering Komitee. Neben der Zukunft von GWT waren auch hier die „Web Components“ ein zentraler Bestandteil der Fragen. Sie werden zukünftig klassische Widgets sehr wahrscheinlich verdrängen, wobei diese jedoch weiterhin genutzt werden können, um die Abwärtskompatibilität zu erhalten.

Fazit

Die GWT.create zeigte erneut, dass die GWT Community sehr lebendig ist und viele Weiterentwicklungen innerhalb kürzester Zeit stattfinden. Man lernt aus den Stärken von Mitbewerbern und adaptiert diese für sich selber. Mit Vaadin führte ich interessante Gespräche und bin gespannt, wie Neuerungen wie der Vaadin Designer und das Grid in der Praxis funktionieren werden.

Der Designer ist zwar noch in einem frühen Entwicklungsstadium; wenn er jedoch weiter ausgereift ist, könnte er die Zusammenarbeit zwischen UI-Designern und Backend-Entwicklern entscheidend verbessern.

Mit Vaadin 7.40 wurde ein wichtiger Meilenstein veröffentlicht, mit dem die neue Grid-Komponente genutzt werden kann [6]. Diese wird für jeden, der Tabellen benötigt, im Projektalltag einiges erleichtern.

Für Interessierte stehen alle Folien der Konferenz zum Download bereit [5]. Auch Videos werden nach und nach zur Verfügung gestellt [7].

Links, Quellen, weitere Informationen:

[1] Keynote: GWT3 – Link: https://docs.google.com/a/vaadin.com/file/d/0ByS1wxINeBWjbzd2ZmcyTVdaNFU/edit?pli=1
[2] Web Components : Web Components sind u.a. eine komfortablere Möglichkeit, um z.B. so etwas wie die Google Maps API in eine Web-Anwendung einzubauen. Daneben bieten sie jedoch noch weitere Features wie „Shadow DOM“ und „HTML-Templates“, auf die hier aber nicht näher eingegangen werden soll.
[3] Future of GWT Report 2015 – Link https://vaadin.com/gwt/report-2015
[4] Vaadin Labs – Link https://vaadin.com/labs-designer
[5] Folien – Link http://gwtcreate.com/slides/index.html
[6] Vaadin Downloads - https://vaadin.com/releases
[7] Videos – Link http://gwtcreate.com/videos/