Was ist der Unterschied zwischen node.js und io.js?


132

Was ist der Unterschied zwischen io.js und node.js ? Die neuere io.jsist gegabelt node.jsund wird außerdem von einigen der gleichen Leute hergestellt, die sie hergestellt haben node.js.

Was sind die Hauptunterschiede, die zu dieser Abzweigung geführt haben, und was bedeutet dies für die gesamte node.js-Community?



8
Leser sollten beachten, dass io.js und node.js inzwischen wieder zusammengeführt wurden, obwohl die Frage zu diesem Zeitpunkt sinnvoll war. In der Praxis existiert io.js nicht mehr wirklich.
Boinst

7
tl; dr Siehe diese Erklärung auf der Website io.js : io.js wurde erneut mit dem Node.js-Projekt zusammengeführt. Es wird keine weiteren Veröffentlichungen von io.j geben. Alle Funktionen in io.js sind in Node.js v4 und höher verfügbar .
Boaz

Antworten:


123

io.js ist eine Gabelung von Joyents Node.js

Was sind die Unterschiede?

io.js:

  • Node-Forward wird grundsätzlich in io.js zusammengeführt
  • auf der Grundlage von Community-gesteuerter Entwicklung und aktiven Release-Zyklen gegabelt
  • Enthält viele der ursprünglichen Node.js-Entwickler
  • hat das zukünftige Ziel, "wieder mit Node.js zu verschmelzen"

Dieses Repository begann als GitHub-Fork von joyent / node, in dem Beiträge, Veröffentlichungen und Mitwirkende unter einem offenen Governance-Modell stehen.

Wir beabsichtigen, mit zunehmender Regelmäßigkeit Releases zu veröffentlichen, die mit dem bisher für node.js erstellten npm-Ökosystem kompatibel sind.

Node.js:

  • die ursprüngliche Software
  • hat die Entwicklung in letzter Zeit verlangsamt
  • gesponsert von Joyent
  • Joyent besitzt die Marke Node.js

Warum haben sie sich getrennt?

Es wurde hauptsächlich aus drei Gründen aufgeteilt: schnellere, aktivere Veröffentlichungen und Entwicklung in Richtung einer 1.0.0Veröffentlichung, für eine stärker von der Community gesteuerte Entwicklung anstelle des Beirats und die Verwendung von Semver für Veröffentlichungen.

Was ist der Beirat ?

Der Beirat war Joyents Plan, Node.js eine zentralere und schnellere Möglichkeit zu bieten, die Entwicklung zu planen und zukünftige Funktionen auf dem Weg zu einer 1.0.0Veröffentlichung zu planen . Dies sollte durch die Zusammenstellung eines Gremiums größerer Unternehmen geschehen, die Node.js verwenden

Zitat aus Joyents Blog:

Da die Community immer komplexer wird, ist es wichtig, dass wir Wege finden, um die Bedürfnisse aller Mitgliedsgruppen in Einklang zu bringen und diesen Organisationen eine Plattform zu bieten, auf der sie zusammenkommen und Beiträge zum Projekt leisten können.

Warum wird der Beirat gehasst?

Zuvor wurde Node.js über Mailinglisten und GitHub-Probleme ausgeführt, und jeder konnte seine Idee einbringen. Diese Idee bekam etwas Hass, weil sie die Kontrolle von Ihrem durchschnittlichen, alltäglichen Mitwirkenden wegnahm und die Macht auf die "Big Shots" verlagerte: Unternehmen wie Walmart , Yahoo , IBM , Microsoft , Joyent , Netflix und PayPal .

Externe Quellen dazu


Einige beliebte Module haben auch die Unterstützung für Node.js beendet und sind zu io.js (dh jsdom ) übergegangen
taco

9
Es wurde tatsächlich teilweise aufgrund des gesamten geschlechtsspezifischen Pronomen-Konflikts gespalten, der dazu führte, dass die meisten ihrer Mitwirkenden gingen. Es gab andere Gründe, aber das war der Strohhalm, der die Kamele zurückbrach
evandentremont

19
Politische Korrektheit ist absolut böse und hat keinen Platz in einem Technologieprojekt (das weiterhin ein Technologieprojekt sein will). Der Fokus sollte auf Ergebnissen und Meritokratie liegen. Leider übernehmen immer mehr Projekte diese Richtlinien und Einstellungen. Mozilla hat etwas Ähnliches getan, wie ich mich an eine ihrer Schlüsselpersonen erinnere. Sobald ich sehe, dass solch ein Unsinn in einem Projekt Anklang findet, weise ich darauf hin und protestiere gegen die Ablenkung. Wenn es weitergeht, ziehe ich mich zurück. Jeder sollte. developer.slashdot.org/…
Ben Scherrey

4
io.js verschmilzt wieder mit node.js Ich denke infoworld.com/article/2923081/javascript/…
Dinkar Thakur

4
"io.js wird wieder mit node.js zusammengeführt" - beide wurden jetzt zusammengeführt. Großartige Neuigkeiten !! iojs.org/de
Deen John

19

In der Tat gibt es praktische Unterschiede zwischen Node.js und io.js . Einige Fakten, die andere Antworten vergessen haben:

  • Derzeit ist io.js in mehrfacher Hinsicht etwas schneller als Node.js. Einen Leistungsmaßstab finden Sie hier .
  • Die ECMAScript 6- Unterstützung von io.js ist viel umfassender als die von Node.js. Einen Vergleich finden Sie hier .

Warum? Weil io.js 1.6.2 mit Google V8 4.1.0.25 und Node.js 0.12.1 mit V8 3.28.73 ausgeliefert wird. Außerdem unterscheiden sich die Flags für ECMAScript 6 zwischen Node.js und io.js. Die Anleitung von io.js zu ECMAScript 6-Flags finden Sie hier .


2
Ein interessanter Haken ist, dass die von Ihnen erwähnte Vergleichstabelle nicht korrekt angezeigt wird, wenn JS im Browser deaktiviert ist (dies sollte der Standard sein. Zeitraum. Und bevor Sie fragen: Wir sprechen hier von serverseitiger JS, nicht von Browserseite!)
Tino

18
Sie haben JS tatsächlich in Ihrem Browser deaktiviert?! Sie müssen der Typ sein, der Millionen von Webentwicklern zum Seufzen bringt, wenn sie hören, ob es ohne aktiviertes Javascript funktioniert.
Zasz

15

TL; DR io.js ist die zukünftige Inkarnation von node.js.

Auf der io.js-Website heißt es : "io.js ist eine Node & npm-kompatible Javascript-Plattform." Es handelt sich um eine Reihe von Tools (eine Laufzeit / VM, ein Paketmanager usw.), die mit dem derzeit als Knoten vorhandenen kompatibel sind. Alle Unterschiede bestehen vermutlich in der zugrunde liegenden Implementierung und in allen Erweiterungen, die io.js über den Funktionsumfang von node.js hinaus hinzufügt.

(Warum sollte etwas, das mit dem kompatibel ist, was bereits existiert, die Gemeinschaft spalten? Warum ist das eine schlechte Sache?)

Beachten Sie, dass io.js noch nicht einmal veröffentlicht wurde! Die Roadmap von io.js zeigt jedoch einige besonders relevante Unterschiede zwischen Knoten und io.

  • "Node ist schon verdammt stabil" und dennoch hat Node 1.0 noch nicht erreicht; es ist derzeit bei 0.10.33.
  • "Das gesamte Ökosystem verwendet Semver, während der Knoten eine verwirrende gerade / ungerade Release-Struktur verwendet." Durch die Einführung eines neuen Namens für ein neues (ish) Projekt können sie das beheben.

So wie ich es verstehe, ist io.js die Version 1.0-alpha1 und die zukünftige Version von node, aber mit:

  • andere (vernünftige) Release-Versionierung
  • absichtlich häufige Veröffentlichungen
  • Governance durch ein technisches Komitee

15
"Die zukünftige Inkarnation" Diese Antwort ist pro-io.js voreingenommen.
Brendan

27
"Die Realität hat eine bekannte liberale Tendenz" - Stephen Colbert
Matt Ball

2
@BrendanAshworth: Auch wenn es wahr ist, scheint das keine Ablehnung zu rechtfertigen. Falls es Argumente gegen io.j gibt, teilen Sie uns diese bitte mit!
Bergi

3
@Bergi Ich habe die Antwort eigentlich nicht abgelehnt - nur weil sie voreingenommen ist, heißt das nicht, dass es keine gute Antwort ist . Es gibt eine positive Bewertung :)
Brendan

3
@BrendanAshworth Technisch gesehen ist die Aussage 'zukünftige Inkarnation' nicht falsch. io.js treibt die Weiterentwicklung von node.js (insbesondere ES6-Unterstützung) voran und wird von den ursprünglichen Erstellern von node.js geleitet. In Anbetracht der Tatsache, dass nodejitsu (der Betreiber von NPM) von GoDaddy übernommen wurde und gerade eine Marke für den Namen 'npm' angemeldet hat und der Name 'node.js' von Joyent als Marke eingetragen ist, ist das Ökosystem node.js / npm möglicherweise gefährdet. Wenn die Dinge nach Süden gehen, ist eine Migration zu io.js durchaus möglich.
Evan Plaice

9

io.js war eine Abzweigung von node.js. Aber jetzt arbeiten io.js und node.js wieder zusammen. Aus diesem Grund springen node.js direkt von 0.12.x direkt auf 4.0.0, da node.js Version 4.0.0 alle wichtigen Updates von io.js Version 3.0.0 enthält

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.