Donnerstag, 18. November 2010

Tag 4: 10:50 - 11:50: Comparing JVM Web Frameworks

Ein Vortragsthema, wie gemacht, um bei allen Zuschauern in Fettnäpfchen zu treten. Denn am Ende erwartet doch jeder die Antwort auf die Frage: "Wer ist das schönste im ganzen Land?"

Wie aber zu erwarten war: Eine eindeutige Antwort darauf gibt es nicht. Der Vortragende gab aber ein klares Statement ab, welches Framework NICHT zu benutzen ist:

"Don't use Struts!"

Das Problem ist aber nicht das einzelne Framework ansich: Es ist die Vielzahl an unterschiedlichsten Web-Frameworks, die eine fundierte Entscheidung zugunsten einer Lösung so schwer macht.

Konsequenz: Es ist ein Leitfaden notwendig, welcher zum einen das Vorgehen und zum anderen die Kriterien zur Auswahl eines Frameworks definieren.

Das vorgeschlagene Vorgehen sollte dabei wie folgt aussehen:
  • Führe eine grobe Vorauswahl von zu untersuchenden Frameworks durch (Bauchentscheidung)
  • Erzeuge auf Basis einer definierten Fachlichkeit je Framework einen Prototypen
  • Dokumentiere die Ergebnisse gemäß Kriterienkatalog (s. u.)
  • Präsentiere die Ergebnisse (anderen Entwicklern, Stakeholdern)
  • Stelle Dokumentation und Präsentation (anderen Entwicklern, Stakeholdern) zur Verfügung und spreche eine Empfehlung aus
 Die zugrundeliegenden Kriterien sollten dabei folgende Themen abdecken:
  • Entwickler-Produktivität
  • Entwickler-Wahrnehmung
  • Lernkurve
  • "Project health"
  • Verfügbarkeit von Entwicklern für die jeweilige Technologie
  • Job Trends (!)
  • Templating
  • Komponenten-Struktur
  • Ajax-Support
  • Plugins / Addons
  • Skalierbarkeit
  • Testing Support
  • i18n, l10n
  • Validation support (Client und Server!)
  • Multi-language support (im Sinne von zusätzlich einsetzbaren (Skript-)Sprachen)
  • Qualität der Dokumentation und der Tutorials
  • Verfügbare Bücher
  • REST Support (Client und Server!)
  • Mobile Support
  • Grad des Risikos für einen Einsatz beim Kunden
Weitere zu beantwortende Fragen beziehen sich auf die Charakteristik der zu bauenden Antwendung:
  • Handelt es sich um eine kunden-zentrierte Anwendung?
  • Muss die Anwendung Desktop-like Funktionalität bieten?
  • Handelt es sich um Multimedia-Anwendungen?
Durch eine andere Brille betrachtet gab der Vortragende folgende Empfehlung aus:
  • Handelt es sich um eine Internet-Anwendung mit hohen Zugriffs- und Benutzerzahlen? Wähle ein Request-basiertes Framework.
  • Handelt es sich um eine Internet-Anwendung hinter einer Firewall mit geringen Zugriffszahlen? Wähle ein Komponenten-basiertes Framework.
  • Handelt es sich um eine Web-Anwendung mit langer Lebensdauer (5-10 Jahre)? Wähle ein Framework mit großer Community und großem Hersteller-Support.
Nun aber wirklich Butter bei die Fische: Wer ist "Web next top framework"? Die Antwort findet man hier. Ein paar Bewertungen zu Frameworks, die auf der Devoxx behandelt, bei uns aber (noch) kein Thema sind:
  • GWT
  • Vorteile: Java-basiert, Javascript wird automatisch optimiert, einfach zu lernen, große Community
  • Nachteile: Langsames Kompilieren, schwer zu testen
  • Grails
  • Vorteile: Von Java-Entwicklern leicht zu lernen, Groovy als Basis, viele Plugins
  • Nachteile: Grauenvolle Stacktraces, Zugrundeliegendes Framework zu sehr weggekapselt
  • Wicket
  • Vorteile: Klasse für Java-Developer, gutes Binding zwischen Seiten und Views, Aktive Community
  • Nachteile: Stateful by default, Keine saubere Trennung zwischen HTML-Templates und Java-Code

Keine Kommentare:

Kommentar veröffentlichen