Interview mit Jakob Westhoff

„React, Angular, Vue.js – letztlich ist es irrelevant, welches JavaScript-Framework man verwendet“
Kommentare

Was ist neu in React 16? Wie steht es um die Lizenz-Problematik um React? Welche Vorteile bringt der JavaScript-Einsatz im Backend? Diese und weitere Fragen beantwortet Jakob Westhoff (Crosscan) im Interview auf den JavaScript Days.

Mirko Hillert: Auf den JS Days hast du eine Einführung in React gegeben. Kürzlich ist die Version 16 von React erschienen. Was hat sich hier getan?

Jakob Westhoff: Facebook ist bei der Weiterentwicklung von React relativ aktiv, weil sie das Projekt selber auch sehr eifrig nutzen. Version 16 von React ist Ende September 2017 erschienen. Das war ein verhältnismäßig großer Schritt für das Projekt, an dem relativ lange im Vorfeld gearbeitet wurde. React 16 beinhaltet ein neues Kern-Rendering-System namens Fiber.

React 16 kann ein großes Update in mehrere kleine Updates unterteilen.

Viele Probleme und Kleinigkeiten, bei denen das alte System an seine Grenzen stieß, sind mit Fiber jetzt mehr oder weniger vom Tisch. Das neue System kommt, und der Weg für die Zukunft ist frei. Um einmal ein Beispiel zu nennen: Das neue System kann jetzt etwas, das das alte partout nicht gekonnt hätte, nämlich den Rendering-Prozess, der letztendlich die Seite updatet, in mehrere Teilschritte zu zerlegen. React kann nun automatisch feststellen, wenn ein großes Update ansteht und festlegen, dass es das Update in mehrere kleine Updates unterteilt.

So ist nicht der komplette Thread im Browser blockiert. Der User merkt also nicht, dass etwas hakt oder irgendetwas im Hintergrund passiert, sondern das ganze System bleibt responsive. Dieser Reconciler im Hintergrund ist in der Lage, ein Stück der Arbeit jetzt zu machen, den User dann wieder ein bisschen interagieren zu lassen und dann den Rest zu erledigen. Das ist insofern ein großer Schritt vorwärts, da es den Seiten wirklich das Gefühl von deutlich mehr Geschwindigkeit verschafft. Es ist noch eine Menge mehr hinzugekommen, was für die zukünftige Nutzung relevant sein wird. Im Moment werden aber viele der neuen Features noch gar nicht so aktiv genutzt. Doch die Umstellung auf Version 16 wurde vollzogen, und es soll sichergestellt werden, dass dieser Übergang beziehungsweise diese Migration sauber verläuft. In der nächsten Zeit werden neue Systeme und neue Features des React 16 Kerns angeschaltet und entsprechend verwendet.

Mirko Hillert: Es gab einen großen Aufschrei in der Community bezüglich der Lizenzierung von React. Wie siehst du die Situation?

Jakob Westhoff: Es gab das Problem, dass Facebook eine relativ offene Open-Source-Lizenz für ihre Projekte hatte. Das bezog sich nicht nur auf React, sondern auch auf Dinge wie Flow, deren Typcheckersystem, das sie eigentlich für fast alle ihre Open-Source-Projekte verwendeten, und so weiter. Das ist eine Lizenz, die eine bestimmte Patentklausel beinhaltet, die besagt, dass Facebook einem User bei einer Verletzung seiner Patente die Nutzungserlaubnis entziehen kann. Das war für viele ein großes Problem, weil das immer ein wenig wie ein Damoklesschwert über einem schwebte. Ganz nach dem Motto: „Vielleicht tue ich das ja irgendwie versehentlich.“ Oder: „Facebook kommt plötzlich auf die Idee, sich in einem Marktfeld breitzumachen, wo sie bisher noch nicht waren, und bekommt dort im Zweifel Patente zugesprochen. Dann habe ich drei Jahre Entwicklungszeit in meine React-Applikation gesteckt und müsste sie jetzt wegschmeißen, weil ich sie eigentlich nicht mehr benutzen darf.“

Das ist natürlich relativ riskant, und daher kam der von dir erwähnte große Aufschrei. WordPress, einer der größten Vertreter der Branche, hat schlichtweg gesagt, sie möchten das nicht entscheiden und haben damit auch nichts zu tun, was die Leute nutzen. Somit haben sie bekannt gegeben, dass man keine WordPress-Plug-ins mehr einreichen darf, die in irgendeiner Form React benutzen, weil sie dieses Risiko nicht eingehen wollen.

Aufgrund dieser Reaktionen hat Facebook aber zurückgerudert und gesagt, sie stellen React unter eine normale, offene Open-Source-Lizenz und schmeißen die erwähnte Patentklausel raus. Somit kann man React einfach wie gehabt benutzen – so ungefähr nach dem Motto: „Ignoriert das Problem, es ist alles in Ordnung.“ Schlussendlich ist das definitiv der richtige Schritt gewesen, um dieses Framework weiter voranzubringen.

API Summit 2017

JavaScript Testing in der Praxis

mit Dominik Ehrenberg (crosscan) & Sebastian Springer (MaibornWolff)

Node.js Quickstart

mit Sebastian Springer (MaibornWolff)

Mirko Hillert: Welche Bedeutung haben die verschiedenen JavaScript-Frameworks für die modernen Applikationen heutzutage?

Jakob Westhoff: Moderne Applikationen, die wir mittlerweile im Browser schreiben, sind nicht mehr weit von nativen Applikationen entfernt. Es sind mittlerweile komplexe Stücke Software. So etwas möchte man nicht immer wieder auf der grünen Wiese beginnen. Man möchte sich nicht jedes Mal erneut überlegen, wie man vorgehen muss. Deshalb ist es grundsätzlich gut, einen Baukasten zur Verfügung zu haben, nach dem man sich richten kann.

Sei das React, Angular, Vue.js oder eins der anderen zahlreichen Frameworks – letztlich ist es irrelevant, welches man davon verwendet. Es ist von Vorteil, einen Bausatz zur Verfügung zu haben, den man sich anschauen kann und feststellt, dass sich schon mal jemand Gedanken über die gängigen Probleme gemacht hat. Im Idealfall wird dieser Baukasten von vielen Leuten verwendet, sodass man auch Probleme frühzeitig erkennt und diese vielleicht bereits aus der Welt geschafft sind. So kann man seine eigene Anwendung dann einfach auf das jeweilige Framework aufsetzen.

React, Angular, Vue.js – letztlich ist es irrelevant, welches Framework man verwendet.

Ein anderer Aspekt ist, dass wir in Web-Projekten Entwickler haben, die aus allen möglichen Bereichen kommen. Sie kommen aus dem .NET-, dem Java- bzw. dem PHP-Umfeld oder sind teilweise auch reine JavaScript-Entwickler. Es gibt einfach eine unglaublich große Menge an Leuten, die mittlerweile JavaScript-Applikationen schreiben. Für diese Entwickler ist es sehr angenehm, wenn sie irgendwo ein Framework haben, das ihnen sagt: „Hier ist die Dokumentation dazu. So strukturierst du deine Applikation. Das kannst du einsetzen und benutzen und dann funktioniert es auch. Du musst dir nicht alles in diesem Ökosystem wieder einzeln zusammen sammeln.“

Das ist auch etwas, was wir mit den React Days durch die verschiedenen Sessions versuchen. Ich habe die Einführung gemacht, dann hatten wir eine Session zu Redux, im Moment läuft eine Session zum Thema Progressiv Web Applications mit React. Hier werden nochmal viele verschiedene Komponenten ineinander verzahnt und gezeigt. React ist zum Beispiel eines dieser Frameworks, die nicht so strikte Vorgaben machen. Man kann sich dort die Teile zusammensuchen, die man gerne hätte. Deswegen ist es auch wichtig, dass wir hierher kommen und die Komponenten zeigen, die man sich näher angucken möchte, da sie sehr gut zusammen funktionieren. So kann man den Leuten wieder eine Richtung geben und sagen „Hier, damit könntest du dich mal beschäftigen, und dann funktioniert das auch. Das macht dir das Leben leichter.“

Also ich sehe bei JavaScript-Frameworks ganz definitiv die Zukunft für ganz große Applikationen. Wir werden natürlich weiterhin kleinere Seiten haben, die hier und da mal ein Snippet JavaScript haben. Das ist auch völlig in Ordnung. Diese kleineren Seiten brauchen auch kein Framework, aber für eine große Applikation macht sich ein Framework schon ganz gut.

Mirko Hillert: Wir haben auf den JavaScript Days auch das Thema Node.js. Wie siehst du die Entwicklung von JavaScript im Backend?

Jakob Westhoff: Node.js ist schon längere Zeit ein heißes Thema. Am Anfang, als Node.js kam, wurde es noch ein wenig belächelt: Wer sollte denn Backend-Sachen in JavaScript schreiben? Mittlerweile gibt es viele große Firmen, die massive Backends in JavaScript geschrieben haben – beispielsweise PayPal, die einen großen Teil ihrer Logik in Node.js abbilden. Aber auch für andere Firmen wird das immer relevanter, wenn auch teilweise nur als kleines Nebenprodukt, was zum Beispiel WebSocket-Verbindungen und dergleichen behandelt. Das wird gerne mit Node.js gemacht, weil es relativ einfach ist und halbwegs performant funktioniert.

Früher hatte man dezidierte Backend-Entwickler, die irgendwie in das Thema JavaScript hineingewachsen sind. Mittlerweile kriegen wir immer mehr Entwickler, die Softwareentwicklung mit JavaScript lernen. Das heißt, wir haben plötzlich auch den umgekehrten Weg: Wir haben den Frontend-Entwickler, der sich noch nie um das Backend gekümmert hat, dem plötzlich gesagt wird: „Kannst du mal ein bisschen Backend machen?“. Für solche Entwickler ist es von großem Vorteil, wenn er eine ihm schon bekannte Umgebung wiederfindet, die er dann weiterentwickeln kann. Er muss nicht eine komplett unbekannte Sprache lernen oder sich mit absolut neuen Prinzipien vertraut machen.

Ein großer Vorteil der Nutzung von JavaScript im Backend ist, dass wir viele Libraries wiederverwenden können.

Ein großer weiterer Vorteil der Nutzung von JavaScript im Backend ist, dass wir viele Libraries wiederverwenden können. Auch wieder eine Sache zum Thema React: Wir können zum Beispiel eine React-Applikation komplett auf dem Server rendern. Das heißt, wir können schon die vorgerenderte Seite dem Client übergeben und sagen: „Hier, das ist etwas, das du schon mal nehmen kannst. Das sieht schon mal sinnvoll aus.“ Den ganzen dynamischen Teil werfe ich dann nur noch schnell oben drauf. Das macht Antwortzeiten schneller, das erlaubt Durchsuchbarkeit von Suchmaschinen im größeren und sinnvolleren Umfang und macht das Ganze interessanter. Dadurch kommt immer mehr JavaScript ins Backend, weil wir letztlich mehr oder weniger dazu tendieren, an einigen Stellen die gleichen Libraries zu benutzen.

Wir haben natürlich immer noch große Server im Backend, seien das irgendwelche Java Backends, PHP Backends oder .NET Backends, mit denen wir reden. Das ist auch vollkommen legitim. Es ist schön, diesen Knotenpunkt beziehungsweise diese Brücke zu haben, die auch sehr aktiv weiterentwickelt wird und die man dann genau in solchen Fällen benutzen kann.

Mirko Hillert: Dankeschön für das Interview, Jakob.

Jakob Westhoff ist professioneller Full-Stack Entwickler mit großem Interesse für Web-Architekturen. Nach einer erfolgreichen Karriere als Geschäftsführer, Berater und Trainer arbeitet Jakob heute für die Crosscan GmbH aus dem schönen Witten. Mit seiner Leidenschaft für hochqualitativen JavaScript- und PHP-Code, sowie seinen großen Erfahrungsschatz unterschiedlichster Technologien und Architekturen ist er hier mitverantwortlich für die Entwicklung innovativer Lösungen für den Einzelhandel und die Industrie. Darüber hinaus unterstützt er andere Entwickler weltweit darin, Probleme zu lösen und komplexe Projekte umzusetzen.
Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -