Suche
Langfristig gedacht

Node.js 8 verspätet sich – das sind die Gründe

Dominik Mohilo

© Shutterstock.com / Peshkova

Noch im Dezember vergangenen Jahres war geplant, dass Node.js 8.0.0 Ende April veröffentlicht werden soll. Nun hat sich das Release um etwa einen Monat verspätet und die neue Version soll circa am 30. Mai erscheinen. Wir haben uns die Gründe für die Verspätung angesehen.

Vor wenigen Tagen verkündete Myles Borins, Mitglied des Core Technical Committees von Node.js, dass es bei der Veröffentlichung der neuesten Version zu einer Verzögerung kommen wird. Node.js 8.0.0 soll nun um den 30. Mai herum veröffentlicht werden. Erstaunlich wenige Nutzer der Open-Source-Plattform haben sich darüber geärgert – das liegt an den sehr nachvollziehbaren Gründen für die Verspätung und an einer kleinen Hoffnung.

Das Problem

Ursprünglich war geplant, Node.js 8.0.0 mit Crankshaft und full-codegen zu veröffentlichen. Für Node.js 9.0.0 hätte man dann auf eine V8-Version gesetzt , die die neuen Module TurboFan und Ignition beinhaltet. Der Grund hierfür war es, dem V8-Team die Möglichkeit zu geben, die Performance der neuen Pipeline zu verbessern und Bugs zu fixen. Außerdem sollte in die neueste Node.js-Version, für die das Team Langzeitunterstützung plant, keine neue Technik implementiert werden.

Der Haken an der Geschichte: Die neue Version von V8, Version 5.9, erscheint bereits im Juni und das Team von V8 hat schon jetzt massive Probleme in Sachen Rückwärtskompatibilität der neuen Versionen zu V8 5.8 bzw. 5.7 vorhergesagt. Somit würde die designierte LTS-Version von Node.js beinahe drei Jahre lang eine nicht mehr unterstützte Version von V8 beinhalten.

Lesen Sie auch: Bluetooth Low Energy in JavaScript und Node.js

Ein weiteres Problem ist, dass das Chrome-Team V8 ständigen Sicherheitsprüfungen unterzieht. Die Nutzung der alten Pipeline würde also einen dreijährigen Blindflug bedeuten, wie Myles Borins schreibt. Zudem wurde ein essentieller Teil der Node.js-Codebasis, das sogenannte Crankscript, so geschrieben, dass er möglichst gut durch Crankshaft optimiert werden kann. Würde man nun bis Node.js 9.0.0 mit dessen Refactoring warten, wäre das ebenfalls nicht optimal im Hinblick auf den LTS.

Die Lösung

Drei Lösungsansätze wurden daraufhin mit dem V8-Team besprochen:

  1. Node.js 8.0.0 mit V8 5.7 durchführen (also nichts ändern).
  2. Node.js 8.0.0 pünktlich zum geplanten Release-Datum mit einer Version von V8 5.8 veröffentlichen, die ABI-kompatibel zu 5.9 ist.
  3. Node.js 8.0.0 verzögert mit einer Version von V8 5.8 veröffentlichen, die ABI-kompatibel zu 6.0 ist.

Das Core Technical Committee von Node.js hat daraufhin in einer Abstimmung beschlossen, das Release verzögert zu veröffentlichen. Auf Seiten von Node.js wird derzeit die Performanz der neuen Pipeline getestet und laut Myles Borins sieht das Ganze recht vielversprechend aus. Das V8-Team bereitet währenddessen eine spezielle Version von V8 5.8 vor, die ABI-kompatibel zu Version 6.0 ist. Dadurch soll der Wechsel auf die neue Pipeline als Non-breaking Change möglich werden.

Lesen Sie auch: Buchtipp: Node.js von Sebastian Springer

Die Eingangs erwähnte „kleine Hoffnung“ bezieht sich auf die Diskussion bei Reddit und die Kommentare unter dem Blog-Post von Borins: Es wird nun darauf gehofft, dass Node.js auch npm 5 beinhalten wird. Ob das der Fall ist oder nicht, geht aus dem Blog-Post allerdings nicht hervor.

Sollte es keine größeren Probleme mehr geben, können sich die Nutzer von Node.js also um den 30. Mai auf das neue Node.js 8 (vielleicht inklusive npm 5) und Anfang Juni auf die neue Pipeline freuen. Das LTS-Release (Carbon) wird wie geplant im Oktober erscheinen. Sämtliche Informationen zur Verzögerung der aktuellen Node.js-Version gibt es auf dem Blog von Myles Borins.

Geschrieben von
Dominik Mohilo
Dominik Mohilo
Dominik Mohilo studierte Germanistik und Soziologie an der Goethe-Universität in Frankfurt. Seit 2015 ist er Redakteur bei S&S-Media.
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.