Version 3 von io.js kommt mit zahlreichen Neuerungen und einigen Breaking Changes

io.js in Version 3.0.0 erschienen
Kommentare

Die io.js-Entwickler haben mit Version 3.0.0 den nächsten Major-Release der Plattform freigegeben. Mit dem auf Node.js basierenden io.js ist es möglich, JavaScript-Code serverseitig auszuführen.

Es ist so weit: das Core-Team von io.js hat mit Version 3 knappe drei Monate nach dem Release von io.js 2.0 ein neues Major Release des JavaScript-Frameworks veröffentlicht. Mit an Bord sind zahlreiche Neuerungen sowie erneut einige Breaking Changes.

io.js 3.0.0

Im Vergleich zu io.js 2.0 hat Version 3.0.0 viele Verbesserungen sowie einige Breaking Changes an Bord. Im Folgenden die wichtigsten Änderungen:

  • Buffer.concat: Mit Version 3.0.0 wird ein neues Buffer Objekt erstellt und zurückgegeben, unabhängig von der Anzahl der Elemente im Array.
  • dgram send() error: Bis zur Version 2.x warf die dgram socket.send() Methode Fehler wenn ein DNS-Lookup fehlschlug. Ab Version 3.0.0 wird keine Fehlermeldung mehr ausgegeben, falls ein Callback vorliegt.
  • HTTP Server Timing: Beim HTTP-Pipelinging von Requests erstellt der Server neue Request- und Response-Objekte für jeden eintreffenden HTTP-Request am Socket. Ab Version 3.0.0 werden diese Objekte etwas später erstellt, nämlich sobald der vorangegangene Request verarbeitet worden ist. Diese Änderungen könnte das Timing bestimmter HTTP-Server-Coding-Patterns beeinflussen.
  • V8 Upgrade: Durch das Upgrade von V8 4.2 zu Version 4.2 müssen alle nativen Add-ons rekompiliert werden. Allerdings wurde die API Surface Area nicht drastisch geändert, so dass die meisten Add-ons nach der Rekompilierung funktionieren sollten. Allerdings hat bereits Version 4.3 die neuen Maybe<> und MabyeLocal<> Typen eingeführt, um „use-after-failure“-Bugs des Systems zu beheben und zu verhindern, dass User aus Versehen leere Handles nutzen. Ersteller von Add-ons sollten deswegen so schnell wie möglich zu den neuen „Maybe“-basierten APIs wechseln, da V8 die alten deprecatet hat und bald entfernen wird.
  • HTTP Status Codes: HTTP Status Codes nutzen jetzt alle die offiziellen IANA Namen.
  • HTTP agent .getAgent(): Der Fehler, dass HTTP agents einen zusätzlichen Doppelpunkt am Ende von Return Values für .getAgent() ausgaben, wurde behoben.

Dennoch hat auch das aktuelle Release noch mit einigen Problemen zu kämpfen. So kann ein Aufruf von dns.setServers() während eines laufenden DNS-Querys zu einem Crash führen. Auch das Problem mit noch laufenden aber nicht referenzierten Timern bei einem Aufruf von beforeExit besteht noch immer. eine detaillierte Übersicht über alle offenen Probleme findet man auf GitHub.

Alle Neuerungen und Verbesserungen sind im Changelog von io.js 3.0.0 übersichtlich zusammengefasst. Die neue Version steht auf der io.js-Projektwebsite zum Download zur Verfügung.

io.js / Node.js Reunion

Ende 2014 hatte sich io.js als Fork von Node.js etabliert; ein schwerer Schlag für das Framework, da die Abspaltung zahlreiche bedeutende Commiter vom Mutterprojekt abziehen konnte. Node.js stand zu diesem Zeitpunkt in dem Ruf, einem vor allem durch Joyent zu verantwortenden schlechten Führungsstil zu unterliegen. Vor allem die Weiterentwicklung ging vielen nicht schnell genug.

Im Februar 2015 war das Fass dann voll, was zur Gründung einer Stiftung führte, die dem offenen Governance-Modell folgte – was die Sache vor allem für io.js-Anhänger besonders attraktiv war. Die beiden nun wieder miteinander verschmolzenen Projekte tragen zwar den Namen Node.js, basieren jedoch auf dem io.js-Repository.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -