Interview mit Kore Nordmann

'JavaScript ist die ubiquitous language, die Java immer sein wollte'
Kommentare

Auf den JavaScript Days (13. – 15. Oktober in Berlin) treffen internationale Experten und Trainer zusammen, um den Teilnehmern in 24 Workshops den State-of-the-Art der JavaScript-Technologien zu vermitteln. Mit von der Partie ist Kore Nordmann, mit dem wir uns vorab über Architektur-Paradigmen, Tooling und Herausforderungen der JavaScript-Entwicklung unterhalten haben.

JavaScript Days Tipp: Wer sich für die JavaScript Days interessiert, profitiert noch bis zum 12. September von den günstigen Early-Bird-Tarifen. Infos unter: www.javascript-days.de.

 

Kore, JavaScript hat die Webapplikations-Entwicklung verändert – hatte das auch Auswirkungen auf die Architektur von Webapplikationen?

Kore Nordmann: Ja, definitiv. Gerade bei Single-Page-Apps, wie sie mit Backbone, Angular.js oder ähnlichen Technologien umgesetzt werden, verschiebt sich die Darstellungslogik vollständig in den Client. Das Backend kann dann oft als reiner Webservice agieren.

Solange JavaScript nur, wie mit jQuery üblich, zur Erweiterung der Interaktionsmöglichkeiten oder zur Visualisierung von Details verwendet wird, ist dies natürlich für das Backend vorerst irrelevant.

Wenn dann noch die Daten in der Webapplikation lokal im Browser vorgehalten werden, um eine seemless degradation auch zu ermöglichen, wenn der Benutzer offline ist, werden einige Herausforderungen sichtbar, die bislang nur in großen verteilten Umgebung auftraten. Dies ist mit HTML5-Technologien wie LocalStorage oder IndexedDB mittlerweile möglich und wird wahrscheinlich immer mehr Anforderung von Benutzern werden.

In dem Fall muss aber die Konsistenz der Daten zwischen dem Browser und dem Backend sichergestellt werden. Eventuell Duplikation von Geschäftslogik, Befassen mit Algorithmen der Eventual Consistency und der Konfliktlösung sind die Folge. Das werden in den nächsten Jahren sicher Herausforderungen für viele Entwickler werden, auch wenn jetzt schon Technologien existieren, die bei der Bewältigung dieser Probleme helfen können.

Hat man es durch die Verbreitung von JavaScript etwas leichter, eine solide Architektur aufzubauen?

Kore Nordmann: Wenn man einfache Single-Page-Apps umsetzt und ein, oder wenige Server die Last bewältigen können, die das Backend erreicht, dann ist es sicher einfacher, eine solche Architektur aufzubauen. Dadurch, dass die komplette Darstellungslogik im Client stattfindet, kann man theoretisch mit der gleichen Anzahl von Servern auch mehr Benutzer bedienen – diese tragen ja jetzt einen größeren Teil der Last mit.

Sobald man aber dem Benutzer das Gefühl wahrhaft nativer Applikationen vermitteln will, das bedeutet sehr schnelle Reaktionszeiten auf Benutzerinteraktionen, benötigt man meistens die erwähnte lokale Speicherung der Daten und die spätere Synchronisierung mit dem Backend. Es gibt wenig Nervigeres als bei der Interaktion mit einer Webapplikation ständig auf den Server warten zu müssen, oder bei einem kurzen Verbindungsabbruch im Zug nicht weiterarbeiten zu können.

Wenn das umgesetzt wird, betreten wir das Gelände von verteilten Systemen – und es ist nicht immer einfach, die Konsistenz der Daten in solchen Systeme sicher zu stellen. Diese Probleme sind bislang in großen verteilten Architekturen gelöst, nun betreffen sie aber auch immer stärker den Entwickler normaler Web-Applikationen.

Die Skalierung von solchen Backends ist bei einer sauberen Auftrennung der Services dann aber wieder einfacher. Insbesondere, wenn jeder Service nur einzelne Verantwortlichkeiten hat – das Stichwort, was diesbezüglich aktuell bereits viel diskutiert wird und in naher Zukunft sicher noch viel mehr Aufmerksamkeit erfahren, wird sind Microservices.

Wie schätzt du das Tooling im JavaScript-Kosmos ein?

Kore Nordmann: Zur Zeit kann der Stand des Toolings, gerade in kommerziellen Projekten, die oft eine Laufzeit von mehreren Jahren haben, sehr frustrierend sein. Gerade bei den Build- und Testing-Tools erscheint alle paar Wochen oder Monate ein neues Tool, das Probleme der vorherigen durch eine Neuimplementierung des gesamten Stacks zu lösen versucht.

Bislang hat es sich in der JavaScript-Community, bis auf wenige Ausnahmen wie jQuery, nicht etabliert, existierende Tools zu erweitern und zu verbessern, anstatt einfach ein neues Tool zu entwickeln. Das liegt mit Sicherheit auch daran, dass bislang noch kaum ein Tool lang genug am Markt ist, um sich wirklich zu etablieren.

Ich sehe aber ein Verbesserung, so existiert mit npm ja zum Beispiel schon seit verhältnismäßig langer Zeit ein funktionierendes Dependency-Management-Tool, auch wenn Alternativen wie bower oft zusätzlich zum Einsatz kommen.

Die Stabilität und Qualität dieser Tools ist notwendig, weil auch der Mittelstand mittlerweile entsprechende JavaScript-Applikationen entwickelt. Dieser kann es sich nicht leisten, Tools vollständig selbst zu entwickeln und zu pflegen, wie Google oder Facebook, braucht aber genauso Stabilität über mehrere Jahre. Da wird sich der Markt für JavaScript-Tools in der nächsten Zeit aus diesem Zwang konsolidieren und stabilisieren.

Wenn das Tooling also nicht dem Standard entspricht, den man von anderen Sprachen kennt, ist es dann wirklich sinnvoll, große Webapplikationen mit JavaScript aufzusetzen?

Kore Nordmann: Wir haben keine andere Wahl. JavaScript ist mittlerweile die ubiquitous language, die Java immer sein wollte. Nicht nur Webapplikationen werden mit JavaScript entwickelt, sondern auch Mobile Apps, Fernseher und Desktop-Environments. Damit müssen und werden wir weiter JavaScript-Applikationen entwickeln. Und mit diesen Applikationen wird viel Geld verdient werden. Das wird auch dazu führen, dass die Tools an Stabilität gewinnen – und ich persönlich freue mich darauf, wenn das endlich der Fall ist.

Dazu kommt, dass dies auch jetzt schon nur bei Projekten mit einer Laufzeit von mehreren Jahren relevant ist. Gerade Webseiten haben oft einen so schnellen Iterationszyklus, dass die Auswahl der Tools angepasst werden kann. Das bedeutet dann nur auch wieder, dass die Entwickler regelmäßig geschult werden – aber dafür gibt es ja Konferenzen wie die JavaScript-Days.

Gerade im JavaScript-Umfeld scheint sich die Welt viel schneller zu drehen – erhöht das die Gefahr, dass man es schneller mit Legacy-Code zu tun hat?

Kore Nordmann: Die Qualität der Software, die man selbst schreibt, ist davon eigentlich unbeeinflusst. Zumindest sollte sie das sein. Auch mit JavaScript werden jetzt schon Projekte umgesetzt, die geplante Laufzeiten von über 5 Jahren haben – in dem Fall müssen die Entwickler auf die Qualität der Software achten. Die Qualität ist nur aufgrund der vielen Tool-Wechsel deutlich schwieriger zu überwachen. Bei motivierten und gut geschulten Entwicklern ist das aber generell kein Problem.

Ein zweites Problem kann sein, dass bislang wenige etablierte Muster des Software-Designs innerhalb der JavaScript-Applikationen existieren, beziehungsweise, dass diese regelmäßig umgestoßen werden. Hier haben wir alle die Aufgabe, Muster für stabile und nachhaltige Applikationen zu finden und diese zu dokumentieren.

Auf den JavaScript Days in Berlin hältst du einen Halbtagesworkshop zum Thema „Web Application Architecture“ – auf was genau wirst du dort alles eingehen?

Kore Nordmann: Ich werde mit den Teilnehmern zusammen die Entwicklung einer klassischen Webapplikation zu einer modernen service-orientierten Appliaktion diskutieren. Dabei sind allgemein verschiedene Probleme der Skalierung, mit verteilten Daten und Konsistenz zu lösen.

Ich werde Lösungswege, und im Einzelnen auch Technologien vorstellen, die die Teilnehmer dann in ihrer praktischen Arbeit umsetzen können. Damit bereite ich die Teilnehmer sowohl auf die Herausforderungen von modernen offline-first Applikationen vor, als auch auf eventuelle Skalierungsanforderungen an die eigene Applikation.

Kore, vielen Dank für dieses Interview!

Kore NordmannKore Nordmann verfügt sowohl über ein Diplom in Informatik als auch einen außerordentlich breit gefächerten Erfahrungsschatz aus professionellen und Open-Source-Projekten auf Basis von PHP. Mit diesem einzigartigen Mix aus Theorie- und Praxis-Erfahrung unterstützt er Teams dabei bei schwerwiegenden Software-Design- und -Architektur-Entscheidungen den richtigen Weg einzuschlagen. Kore ist einer der Mitbegründer der Qafoo GmbH, wo er als Berater und Schulungsleiter tätig ist.

Aufmacherbild: Businessman presenting the word javascript von Shutterstock / Urheberrecht: wavebreakmedia

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -