Interview mit Christian Kaltepoth zum Thema Webanwendungen bauen

GWT oder JSF – oder doch gleich HTML5?

Hartmut Schlosser
©Shutterstock/ Jan Kowalski

JSF (Java Server Faces) ist die klassische Technologie, mit der Java-Entwickler Webanwendungen bauen. Dynamischer kommt das Google Web Toolkit (GWT) daher, das Java-Code nach JavaScript übersetzt, welches dann im Browser ausgeführt wird. Zwei Ansätze, die zwar denkbar unterschiedlich sind, sich aber keineswegs widersprechen müssen – das meint zumindest Christian Kaltepoth, JAX-Speaker und Senior Developer bei der ingenit GmbH & Co. KG. Im JAX Countdown beschreibt er, wie sich JSF und GWT ergänzen können, und weshalb beide auch angesichts des HTML5-Booms noch lange ihre Daseinsberechtigung haben.

JAXenter: „JSF oder GWT“ – das ist deinem Session-Abstract zufolge nicht wirklich die Frage. Du rätst dazu, beides gleichzeitig einzusetzen. Weshalb sollte man das tun?

Christian Kaltepoth: Ich denke, wir wissen heute, dass es keine eindeutige Antwort auf die Frage gibt, welches das beste Web-Framework ist. Der Grund dafür liegt auf der Hand. Jedes Framework hat unterschiedliche Stärken, aber auch Schwächen. Welche die am besten geeignete Technologie für eine Anwendung ist, hängt somit stark von den spezifischen Anforderungen ab.

JSF beispielsweise ist sehr gut für formularbasierte Anwendungen geeignet. Das liegt vor allem daran, dass der JSF Lifecycle für die Verarbeitung von Nutzereingaben optimiert wurde. So sind die Konvertierung von Eingaben, deren Validierung und das Binding an Domänenobjekte bereits fest in den Lifecycle integriert. Gerade aus diesem Grund ist die Implementierung von Formularen mit JSF besonders einfach.

Im Gegensatz dazu handelt es sich bei GWT im Kern um einen Compiler, der Java Code in JavaScript übersetzt, welches dann komplett im Browser läuft. Damit ist GWT gut für Anwendungen geeignet, die sehr interaktiv sind, und für die ständige AJAX Requests für jedes Update der Oberfläche keine Option sind.

Gerade weil GWT einen komplett anderen Ansatz als JSF verfolgt und folglich auch andere Stärken hat, war für mich die Frage interessant, inwieweit man eine JSF-Anwendung mittels GWT um clientseitige Funktionalität erweitern kann. Eine solche Integration bietet viele interessante Vorteile.  Die Entwicklung des clientseitigen Codes in Java erlaubt es, von vielen Vorteilen einer statisch typisierten Sprache zu profitieren. Dazu zählen beispielsweise Refactorings, statische Codeanalyse und optimale Unterstützung durch die IDE.

GWT und JSF – Harmonie oder Chaos? 

JAXenter: Wie garantiert man technisch ein reibungsloses Zusammenspiel von JSF und GWT?

Christian Kaltepoth: Das hängt stark davon ab, wie viele Berührungspunkte es zwischen den beiden Frameworks gibt bzw. geben soll. GWT benötigt stets eine Host Page, in der das kompilierte JavaScript ausgeführt wird. Diese Rolle kann problemlos auch eine von JSF gerenderte Seite übernehmen. Hierzu ist lediglich das von GWT kompilierte JavaScript in die Seite einzubinden.

In der Host Page kann GWT nun neue HTML-Elemente hinzufügen, auf existierende zugreifen und diese um Funktionalität erweitern, genau wie es auch mit reinem JavaScript möglich ist. Letzteres funktioniert natürlich auch mit den von JSF-Komponenten erzeugten HTML-Elementen. Jedoch muss man stets darauf achten, dass sich die JSF Postbacks noch genau so verhalten wie zuvor, da die JSF-Komponenten ansonsten die übermittelten Daten nicht mehr korrekt verarbeiten können.

JAXenter: Wie bewertest du die aktuelle Situation des Google Web Toolkit, nachdem es ja nicht mehr allein von Google, sondern von einem unabhängigen Steering Committee geleitet wird?

Christian Kaltepoth: Als bekannt wurde, dass Google die Kontrolle über GWT an das Steering Committee abgibt, war sehr viel Verunsicherung in der Community zu spüren. Schnell wurde vermutet, dass Google die Technologie los werden wolle, obwohl Google zu diesem Zeitpunkt GWT noch selbst aktiv nutzte.

Ich persönlich denke, dass die aktuelle Situation eher als Chance gesehen werden sollte. Durch die Übergabe an das Steering Committee hat sich GWT mehr der Community geöffnet und erlaubt damit eine offenere Entwicklung, an der die Community mehr mitwirken kann, als es zuvor der Fall war.

Außerdem gab es in der Vergangenheit ja durchaus bereits ähnliche Konstellationen. Ich denke da beispielsweise an die Freigabe von Eclipse durch IBM. Wie wir alle wissen, hat sich Eclipse seitdem sehr aktiv weiterentwickelt, und ich denke, man kann im Nachhinein sagen, dass IBM die richtige Entscheidung zum Wohle des Projekts getroffen hat.

Offen für Neues oder der Hang zum Alten?

JAXenter: JSF ist ja eine relativ reife Technologie. Welche Innovationen wünscht du dir?

Christian Kaltepoth: Meiner Meinung nach kann man JSF in der Tat als sehr ausgereifte Technologie bezeichnen. In den letzten Jahren hat sich JSF kontinuierlich weiterentwickelt. Besonders in der aktuellsten Version 2.2 hat sich viel getan. So sind zum Beispiel einige der Features, die ich persönlich bereits seit Längerem vermisst habe, in JSF 2.2 eingeflossen. Zu nennen wären an dieser Stelle insbesondere die Faces Flows, die Standardkomponente für File Uploads und natürlich auch der HTML5 Support.

Für die Zukunft von JSF ist es unbedingt notwendig, bezüglich neuer Web-Technologien am Ball zu bleiben. Vor allem HTML5 ist hier ein gutes Beispiel. Es wäre fatal, die neuen Möglichkeiten zu vernachlässigen, die moderne Webbrowser heute bieten.

JAXenter: JSF, GWT – wieso nicht gleich HTML5?

Christian Kaltepoth: HTML5-Applikationen sind sicherlich heute eine Alternative zu den „bodenständigeren“ Frameworks wie beispielsweise JSF. Sicherlich ist es verlockend, auf einen solchen Technologie-Stack zu setzen und somit die vielfältigen Möglichkeiten nutzen zu können, die moderne Webbrowser heute bieten.

Meine Erfahrung jedoch zeigt, dass HTML5 besonders im Bereich der unternehmensinternen Geschäftsanwendungen noch keinen richtigen Einzug findet. Das hängt mit einer ganzen Reihe von Gründen zusammen. Besonders der großflächige Einsatz von JavaScript wird noch häufig kritisch betrachtet, was hauptsächlich an der dynamischen Natur der Sprache liegt. Statisch typisiere Sprachen gelten in Unternehmen immer noch als die sicherere Investition für langlebige Projekte.

Außerdem darf man nicht vergessen, dass besonders in großen Unternehmen häufig noch alte Browser anzutreffen sind, die HTML5 gar nicht ausreichend unterstützen. Aus diesem Grund denke ich, dass Frameworks wie JSF und GWT auch in Zukunft für viele Anwendungsfälle die beste Wahl sein werden.

JAXenter:  Vielen Dank für dieses Gespräch!

Christian Kaltepoth auf der JAX
Auf der JAX 2014 (12. – 16. Mai) ist Christian Kaltepoth mit der Session „JSF vs. GWT? JSF und GWT!“ vertreten:

Mit JSF steht Entwicklern ein ausgereiftes Framework zur Verfügung, das seine Stärken besonders bei formularbasierten Webanwendungen ausspielt. Geht es um die Entwicklung von hoch interaktiven Anwendungen, reichen die JSF-Bordmittel jedoch häufig nicht aus. Das Google Web Toolkit (GWT) verfolgt einen komplett anderen Ansatz. GWT erlaubt es, Java-Quellcode in JavaScript zu übersetzen, das dann vollständig im Browser läuft. Diese Session zeigt, wie sich eine JSF-Anwendung mittels GWT um clientseitige Funktionalität erweitern lässt, und beschreibt, in welchen Situationen diese Kombination einen echten Mehrwert für die Usability bringen kann.

Aufmacherbild: abstract photo : Stone – Scissors – Paper von Shutterstock / Urheberrecht: Jan Kowalski

Geschrieben von
Hartmut Schlosser
Hartmut Schlosser
Content-Stratege, IT-Redakteur, Storyteller – als Online-Teamlead bei S&S Media ist Hartmut Schlosser immer auf der Suche nach der Geschichte hinter der News. SEO und KPIs isst er zum Frühstück. Satt machen ihn kreative Aktionen, die den Leser bewegen. @hschlosser
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: