Interview mit Sven Kölpin

Wie findet man das richtige Web-Framework?

Hartmut Schlosser

Sven Kölpin

Der Enterprise-Entwickler Sven Kölpin ist Trainer auf dem Java Enterprise Summit, der vom 9. bis 11. Dezember in Berlin stattfindet. In seinen zwei Workshops wird er verschiedene Enterprise Web-Technologien eingehenden Praxis-Checks unterziehen und all jenen Entwicklern, die bisher den Umgang mit JavaScript gescheut haben, den Einstieg in die Scriptsprache erleichtern. Im Interview mit JAXenter spricht er über die Wahl des richtigen Web-Frameworks und den Vorteil von JavaScript für große Enterprise-Projekte.

JAXenter: Die Wahl des richtigen Web-Frameworks für ein Projekt ist ja nicht gerade einfach. Welche Kriterien gibt es aus deiner Sicht, damit die Wahl nicht zur Qual wird?

Sven Kölpin: In erster Linie sollte man sich bei der Wahl des Frameworks die Zusammensetzung des Projektteams vor Augen halten. Entwickler mit wenig Weberfahrung haben es oftmals leichter mit komponentenbasierten MVC Frameworks wie JSF oder Vaadin. Hier werden die eigentlichen Webtechnologien (v. a. JavaScript) sowie die Statuslosigkeit von HTTP größtenteils abstrahiert. Die Abstraktion hat aber natürlich auch ihren Preis (Verlust von Flexibilität, Komplexität der Frameworks, Skalierbarkeit usw.).

Im Gegensatz dazu bieten actionbasierte MVC Frameworks wie MVC 1.0 oder Spring MVC den Entwicklern viel mehr Freiheiten und sind somit um einiges flexibler. So lassen sich neue Technologien (z.B. neue JavaScript-Frameworks) viel leichter integrieren. Allerdings wird hier nur wenig bis gar nichts abstrahiert, sodass in einem Projektteam ein nicht zu unterschätzendes Mindestmaß an Kenntnis über Webtechnologien vorhanden sein muss.

Neben der Teamzusammensetzung kommt es selbstverständlich auch noch auf das eigentliche Projekt an. Stark formularbasierte Anwendungen lassen sich oftmals schneller mit klassischen serverseitigen Frameworks erstellen, während rein clientseitige Ansätze ihre Stärken bei komplexen Web-Apps haben.

Grundsätzlich gibt es das „richtige“ Framework natürlich nicht. Es müssen stets alle Rahmenbedingungen berücksichtigt werden. Und oftmals entscheidet auch einfach der Geschmack.

JAXenter: Nun zeichnen sich JavaScript-Frameworks ja nicht gerade durch Langlebigkeit aus – die Dynamik ist in diesem Bereich sehr hoch. Wie vermeidet man, dass das gewählte Framework in 2 Jahren wieder veraltet ist und man die ganze Anwendung umschreiben muss?

Sven Kölpin: Der Trend, rein clientseitige Webanwendungen im Enterprise-Kontext zu entwickeln ist noch sehr jung. AngularJS ist das erste wirklich ernstzunehmende JavaScript-Framework, das in Unternehmen abseits des Silicon Valleys produktiv eingesetzt wird. Mit ReactJS ist nun ein zweiter interessanter Ansatz in diesem Bereich entstanden, der sich meiner Meinung nach ähnlich etablieren wird.

Es haben sich in den letzten Jahren neben einem gewissen Grundrauschen an neuen Ideen und Themen also eigentlich nur zwei Frameworks herauskristallisiert, die noch dazu von den IT-Giganten Google und Facebook entwickelt werden. Im JavaScript-Tooling Bereich lässt sich mit BabelJS und NPM ähnliches beobachten. Trotz der ganzen Hype-Themen sollte man sich also auf die Ansätze mit der größten Community konzentrieren, weil diese auch in den nächsten Jahren mit hoher Wahrscheinlichkeit noch nicht verschwunden sein werden. Natürlich hat AngularJS mit der Version 2.0 auf Grund der mangelnden Kompatibilität zum Vorgänger wieder viel Unruhe in die Enterprise-JavaScript-Welt gebracht – dass dies das Aus für AngularJS bedeutet ist aber definitiv zu bezweifeln.

Eine 100-prozentige Garantie für ein Framework gibt es aber natürlich nicht. Wer sich ganz sicher sein möchte, der bleibt auch in den nächsten Jahren eher bei einem standardisierten serverseitigen Ansatz und nutzt JavaScript nur zur DOM-Manipulation – schließlich lassen sich auch so moderne Webanwendungen entwickeln. Und jQuery wird als Quasistandard im JavaScript-UI Bereich auch noch die nächsten Jahre locker überstehen.

DevOpsCon Whitepaper 2018

Free: BRAND NEW DevOps Whitepaper 2018

Learn about Containers,Continuous Delivery, DevOps Culture, Cloud Platforms & Security with articles by experts like Michiel Rook, Christoph Engelbert, Scott Sanders and many more.

JAXenter: JavaScript sei die am meisten missverstandene Sprache, heißt es in deinem Abstract. Wo liegen denn aus deiner Sicht die häufigsten Missverständnisse?

Sven Kölpin: Das Zitat stammt von meinem Lieblings JavaScript-Autor Douglas Crockford. Er hat damit verschiedene Dinge gemeint. Vor allem ist der Name der Sprache ein großes Problem – JavaScript hat mit Java, mit Ausnahme von ein paar syntaktischen Gemeinsamkeiten, rein gar nichts am Hut. Zur großen Verwirrung steuern außerdem die extreme Dynamik und das eigentlich funktionale Programmierkonzept der Sprache bei.

Auch wird oftmals vergessen, dass JavaScript und der Browser eigentlich gar nicht direkt zusammenhängen, sondern dass dieser lediglich eine von vielen Laufzeitumgebungen ist. Das gesamte, und offengesagt misslungene, DOM-Handling im Browser ist kein Teil der Sprache, sondern ein vom Browser zur Verfügung gestelltes API. Viele halten JavaScript außerdem noch für ein Abfallprodukt des Browsers um Texte zum Blinken zu bringen und nicht für eine ernstzunehmende Programmiersprache.

JAXenter: JavaScript hat ja auch den Ruf, dass es für große Enterprise-Projekte nicht taugt. Mit welchen Mitteln geht Enterprise JavaScript aber doch?

Sven Kölpin: Disziplin, Tools und Erfahrung. Die hohe Dynamik der Sprache erlaubt es, ein Ziel über viel zu viele Wege zu erreichen. Und weil JavaScript keine festen Pattern verlangt, entsteht oftmals unwartbarer Spaghetti-Code. Noch dazu kommt, dass in vielen Projekten Frontend- und JavaScript-Themen stark vernachlässigt werden. Dann werden hier und da Code-Fragmente zusammen gegoogelt, um „mal schnell etwas hinzubekommen“. Das Problem ist hier also weniger die Sprache an sich, als vielmehr das JavaScript oftmals als lästiges Nebenprodukt gilt. Abhilfe können hier Qualitätssicherungs-Tools wie JSLint schaffen.

In rein clientseitigen Frameworks wie AngularJS oder ReactJS ist die Code-Qualität in der Regel viel höher, weil hier bestimmte Pattern erzwungen werden. Außerdem muss man sich für die Nutzung dieser Frameworks richtig mit JavaScript auseinandersetzen.

JAXenter: Microservices mit JavaScript – wie passt das gut zusammen?

Sven Kölpin: Grundsätzlich spricht nichts gegen die Umsetzung von Microservices mit JavaScript – schließlich ist die Architekturidee ja technologieunabhängig. Die Umsetzung JavaScript-basierter Microservices bietet sogar einen wichtigen Vorteil: JSON ist nativ in JavaScript integriert. Weil die leichtgewichtige Kommunikation eines der Grundprinzipien von Microservices ist, werden diese in der Praxis meist als REST-basierte Services mit JSON als Austauschformat umgesetzt. Sind die Microservices in JavaScript entwickelt, muss keine Konvertierung der Daten stattfinden, bevor diese von den Services interpretiert bzw. herausgereicht werden können.

Zusätzlich existiert mit NodeJS ein hochskalierbarer JavaScript-Server, der extrem effizient mit vielen Anfragen umgehen kann. Auch in der Java-Welt passiert mit der Nashorn-Engine in diesem Bereich gerade sehr viel (z.B. Wildflys‘ undertow.js).

JAXenter: Vielen Dank für dieses Interview!

Sven Kölpin ist Enterprise-Entwickler, Speaker und Autor bei der open knowledge GmbH in Oldenburg. Schwerpunkt und Leidenschaft ist die Konzeption und Entwicklung von Web-Anwendungen.
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: