Warum Vaadin für unser Projekt am besten passt

Knappes Budget, enger Terminplan, begrenztes technologisches Know-How und einen Sack voll Auswahlmöglichkeiten.
Das war die Ausgangssituation mit der wir uns beim Realisierungsprojekt für eine Logistikplattform konfrontiert sahen. Denkbar schlechte Voraussetzungen für die Auswahl eines geeigneten Web-Frameworks, die Frage war daher: Wie können wir bei diesen Rahmenbedingung die beste (oder zumindest eine gute) Wahl treffen? Ein Erfahrungsbericht über unsere Analyse:

Problemstellung

Das Frontend musste als Web-Anwendung erstellt werden und dabei eine möglichst einfache Integration mit der Backend Implementierung ermöglichen. Um die Komplexität während der Entwicklungsarbeit zu reduzieren, sollten sich die Programmiermodelle zwischen Frontend und Backend möglichst nicht unterscheiden.

Da es im Java Umfeld eine große Anzahl möglicher Technologien im Web Umfeld gibt, musste analysiert werden, welches Framework für die Entwicklung der Anwendung die besten Voraussetzungen mitbringt.

Rahmenbedingungen

In Projekten der HEC gibt es (Stand Sommer 2015) im Wesentlichen zwei verwendete Web-Frameworks: JSF und Eclipse RAP.

  • JSF (Java Server Faces) wird in einem großen (> 10 Entwickler) Projekt eingesetzt
  • Eclipse RAP wird in zwei Projekten eingesetzt

Da hierzu also KnowHow vorhanden im Unternehmen ist, sind beide Frameworks als mögliche Kandidaten zu betrachten.

Im Projekt Entwickler-Team gibt es mit keiner dieser Technologien Erfahrung, auch zu sonstigen Web Frameworks kein praktisches KnowHow. Da nur Java-Know How vorhanden ist, kommen ausschließlich reine Java Web Frameworks in Frage.

Kriterien

Folgende Kriterien sind bei der Wahl einer geeigneten Web-Technologie für die Anwendung zu berücksichtigen:

  1. geringe Lernkurve – Wie schnell kommt man zu ersten Ergebnissen?
  2. Entwicklungsgeschwindigkeit – Wie schnell lassen sich insbesondere Oberflächen entwickeln?
  3. Communitygröße / Verbreitungsgrad – Wie verbreitet ist die Technologie in Foren etc.?
  4. Dokumentation – Wie umfangreich ist die Dokumentation?
  5. Erweiterbarkeit – Können eigene Controls erstellt werden?
  6. Controls und vorhandene AddOns (Control, fertige Dialoge etc.) – Wie viele Standard Controls gibt es und wie viele vorhandene Addons gibt es?
  7. vorhandenes Know-How – Gibt es in der HEC und im Projekt Erfahrungen mit der Technologie?
  8. Verwendung mit Spring / Spring Boot – Lässt sich die Technologie in Spring Boot integrieren?
  9. Look and Feel – Wie lässt sich die Darstellung anpassen?
  10. Tooling – Wie passt die Technologie in die Toolkette, bzw. werlche Tools gibt es?

Annahmen

Es stehen ausreichend Quellen zur Verfügung, die bestehende Java Web Frameworks miteinander vergleichen.
Auf Basis dieser Quellen ist davon auszugehen, dass eine Umsetzung der Anwendung prinzipiell mit jedem modernen Java Web Frameworks möglich ist. Es wird daher darauf verzichtet, eine prinzipielle Machbarkeitsstudie für die Technologien durchzuführen.

Betrachtete Alternativen

Folgnede Web-Technologien wurden in die engere Auswahl gezogen:

  • JSF (Java Server Faces) mit PrimeFaces
  • Vaadin
  • Eclipse RAP

Während JSF und Vaadin die wohl am häufigsten verwendeten Frameworks im Java Umfeld darstellen, wurde Eclipse RAP aufgrund der Verwendungshistorie in HEC-Projekten in die Auswahl einbezogen.

Folgende Quellen wurden verwendet:

  1. http://www.informatik-aktuell.de/entwicklung/programmiersprachen/vaadin-entwicklung-von-rich-client-anwendungen-fuer-den-browser.html
  2. http://www.computerwoche.de/a/was-java-web-frameworks-leisten,3065497
  3. http://de.slideshare.net/mraible/comparing-jvm-web-frameworks-february-2014
  4. http://zeroturnaround.com/rebellabs/the-curious-coders-java-web-frameworks-comparison-spring-mvc-grails-vaadin-gwt-wicket-play-struts-and-jsf/11/
  5. Erfahrungen von Entwicklern im HEC-Projekt Umfeld (Erfahrungen mit JSF und Vaadin)

Vergleichsmatrix

[table id=VergleichsmatrixWebFrameworks /]
Anmerkung: Keine der erwähnten Quellen erwähnt, bzw. berücksichtigt Eclipse RAP. Es finden sich auch kein aktueller Vergleich von RAP gegenüber anderen Web Frameworks (auch über JSF und Vaadin hinaus).

Entscheidung

Aufgrund des Vergleichs erscheint Vaadin als geeignetste Lösung. Zwar spricht für Eclipse RAP, dass es innerhalb der HEC bereits Erfahrungen gibt, diese sind allerdings außerhalb des Entwicklungsteams. Darüber hinaus wird, wie der Vergleich zeigt, Eclipse RAP in der Web Entwicklung eher selten gewählt. Hierdurch ist davon auszugehen, dass bei entstehenden Problemen oftmals kaum externe Hilfe gefunden werden kann.

Gegen JSF spricht, dass die Lernkurve und die Komplexität des Frameworks sehr hoch ist. Dies bestätigen auch die Kollegen aus dem Umfeld des JSF-Projektes, die die Entscheidung pro JSF nach heutigem Kenntnissstand revidieren und stattdessen Vaadin einsetzen würden. Vaadin verfügt zudem über die grösste Auswahl an Controls und AddOns der drei Technologien und verspricht mit seinem einfachen Programmiermodell und seiner Integration in Spring Boot eine hohe Entwicklungsgeschwindigkeit.

Verfasst von Björn Seebeck am 19. Dezember 2016