Was lange währt...

Node.js 8 erschienen – Dank Verschiebung mit V8 5.8 & npm 5

Dominik Mohilo

© Shutterstock.com / Peshkova

Nach der planmäßigen Verschiebung von Node.js 8 erschien die Open-Source-Plattform nun überpünktlich. Ärgern braucht sich darüber aber niemand, denn durch die kurzfristige Verschiebung wurde nicht nur die aktuelle Version stark verbessert, sondern auch die Zukunft von Node.js gesichert. Und ein vielfach gewünschtes Feature ist dadurch auch realisiert worden, nämlich die Integration von npm 5.

Über die Gründe für die Verschiebung haben wir bereits berichtet: Der ursprüngliche Plan sah vor, Node.js 8.0.0 mit Crankshaft und full-codegen zu veröffentlichen. Erst im Nachfolger, also Node.js 9, hätte man dann auf die neuen V8-Module TurboFan und Ignition gesetzt. Das Problem an diesem Plan war die Tatsache, dass die LTS-Versionen (Long Term Support) von Node.js dann beinahe drei Jahre lang eine nicht mehr unterstützte Version von V8 beinhaltet hätten. Die Verschiebung und Implementierung der neuen Pipeline war also alternativlos, um den Usern keinen drei Jahre andauernden Sicherheitsblindflug zumuten zu müssen.

Node.js 8 – die Features

In den Kommentaren zur Ankündigung der Verschiebung kam ein Wunsch bzw. eine Hoffnung immer wieder auf, nämlich die Implementierung des kürzlich veröffentlichten npm 5. Dieser Wunsch ist durch die Terminänderung nun zur Freude vieler Entwickler in Erfüllung gegangen. Natürlich ist auch die aktuelle Version von V8 wie geplant an Bord von Node.js 8 und durch die ABI-Vorwärtskompatibilität zu V8 5.9 und V8 6.0 wird die Straße für die TurboFan + Ignition Compiler Pipeline geebnet. Noch innerhalb des 8.x-Release-Zyklus soll die Unterstützung von V8 in Node.js auf Version 5.9 und eventuell sogar auf Version 6.0 aktualisiert werden.

Bereits in Node.js 7.x wurde der Plattform ein experimentelles URL-API mit dem WHATWG URL Standard hinzugefügt. Dieses API wird ab sofort vollständig supportet und hat den experimentellen Status verlassen. Diese URL-Implementierung ist vor allem deswegen wichtig, da es zu den URL-Implementierungen und APIs moderner Browser wie Chrome, Firefox, Edge und Safari passt. Hier ein Anwendungsbeispiel:

const URL = require('url').URL;

const myUrl = new URL('/a/path', 'https://example.org/');

Ein neues experimentelles Feature ist das neue Node.js API (N-API), das eine deutliche Verbesserung gegenüber dem existierenden Native Abstractions for Node.js (nan) sein soll. Dank des neuen APIs sollen zukünftig native Add-ons einmal kompiliert und dann in verschiedenen Versionen von Node.js nutzbar sein. Entwicklern solch nativer Add-ons wird empfohlen, das neue API möglichst bald zu testen, damit es sich reibungslos in das Ökosystem einfügen lässt.

Das async_hooks-Modul (ehemals asynch_wrap) ist nach wie vor experimentell, wurde aber ebenfalls für die neue Version aktualisiert. Das Diagnose-API erlaubt es Entwicklern unter anderem, die Arbeit des Node.js Event Loops zu überwachen, indem es asynchrone Requests und Handles über deren kompletten Lebenszyklus nachvollzieht. Aber Vorsicht! Die Nutzung des neuen Moduls sollte sehr gewissenhaft genutzt werden, da auch die Dokumentation noch unvollständig ist.

Eine vollständige Änderungsübersicht und detaillierte Informationen zu den Änderungen im Einzelnen gibt es im Blog-Post von James M. Snell und Colin Ihrig auf dem Node.js-Blog. Dort gibt es auch Links zu den Downloads für alle unterstützten Plattformen.

Verwandte Themen:

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.