¿Cuál es la diferencia entre node.js y io.js?

132

¿Cuál es la diferencia entre io.js y node.js ? El más reciente io.jsse bifurca node.jsy, además, lo hacen algunas de las mismas personas que lo hicieron node.js.

¿Cuáles son las diferencias clave que han llevado a esta bifurcación y qué significa para la comunidad de node.js en su conjunto?

maudulus
fuente
8
Los lectores deben tener en cuenta que, aunque la pregunta tenía sentido en ese momento, io.js y node.js se han fusionado nuevamente. Prácticamente hablando, io.js realmente ya no existe.
Boinst
77
tl; dr Vea esta declaración en el sitio web en io.js : io.js se ha fusionado con el proyecto Node.js nuevamente. No habrá más versiones de io.js. Todas las características en io.js están disponibles en Node.js v4 y superior .
Boaz

Respuestas:

123

io.js es una bifurcación de Joyent's Node.js

¿Cuáles son las diferencias?

io.js:

  • Node-forward básicamente se está fusionando en io.js
  • bifurcado sobre la base del desarrollo impulsado por la comunidad y los ciclos de lanzamiento activo
  • incluye muchos de los desarrolladores originales de Node.js
  • tiene el objetivo futuro de "fusionarse con Node.js"

Este repositorio comenzó como una bifurcación de GitHub de joyent / node donde las contribuciones, lanzamientos y contribuciones están bajo un modelo de gobierno abierto.

Tenemos la intención de aterrizar, con creciente regularidad, lanzamientos que sean compatibles con el ecosistema npm que se ha construido hasta la fecha para node.js.

Node.js:

  • el software original
  • ha ralentizado el desarrollo en los últimos tiempos
  • patrocinado por Joyent
  • Joyent posee la marca registrada Node.js

¿Por qué se separaron?

Se dividió principalmente por tres razones: lanzamientos más rápidos y más activos y desarrollo hacia un 1.0.0lanzamiento, para un desarrollo más impulsado por la comunidad en lugar de la Junta Asesora , y el uso de semver para lanzamientos.

¿Qué es el consejo asesor ?

El Consejo Asesor fue el plan de Joyent para brindarle a Node.js una forma más centralizada y más rápida de planificar el desarrollo y planificar las características futuras en el camino hacia un 1.0.0lanzamiento. Se planeó hacer esto juntando una junta de compañías más grandes que usan Node.js

Cita del blog de Joyent:

A medida que la comunidad se vuelve más compleja, es importante que encontremos formas de equilibrar las necesidades de todos los constituyentes y proporcionemos una plataforma para que estas organizaciones se unan y brinden su aporte al proyecto.

¿Por qué se odia a la junta asesora?

Anteriormente, Node.js se ejecutaba a través de listas de correo, problemas de GitHub y cualquiera podía aportar su idea. Esta idea comenzó a tener algo de odio porque le quitó el control a su contribuyente promedio diario y movió el poder a los "grandes golpes": compañías como Walmart , Yahoo , IBM , Microsoft , Joyent , Netflix y PayPal .

Fuentes externas sobre esto

Brendan
fuente
Algunos módulos populares también terminaron el soporte para Node.js y se trasladaron a io.js (es decir, jsdom )
taco
9
En realidad, se dividió en parte debido a todo el conflicto de pronombres de género que terminó en la partida de la mayoría de sus contribuyentes. Hubo otras razones, pero esa fue la gota que colmó el vaso
evandentremont
19
La corrección política es absolutamente mala y no tiene cabida en un proyecto tecnológico (que quiere seguir siendo un proyecto tecnológico). El enfoque debe estar en los resultados y la meritocracia. Lamentablemente, cada vez más proyectos adoptan estas políticas y actitudes. Mozilla hizo algo similar como recuerdo a una de sus personas clave. Tan pronto como veo que esas tonterías cobran fuerza en un proyecto, lo señalo y protesto por la distracción. Si continúa, me retiro. Todos deberían. developers.slashdot.org/…
Ben Scherrey
44
io.js se está fusionando con node.js, supongo que infoworld.com/article/2923081/javascript/…
Dinkar Thakur
44
"io.js se está fusionando con node.js", ambos se han fusionado ahora. Una gran noticia !! iojs.org/en
Deen John
19

De hecho, existen diferencias prácticas entre Node.js y io.js . Algunos hechos olvidados por otras respuestas:

  • Actualmente, io.js es, en múltiples aspectos, un poco más rápido que Node.js. Un punto de referencia de rendimiento se puede encontrar aquí .
  • El soporte ECMAScript 6 de io.js es mucho más amplio que Node.js. La comparación se puede encontrar aquí .

¿Por qué? Porque io.js 1.6.2 viene con Google V8 4.1.0.25, y Node.js 0.12.1 viene con V8 3.28.73. Además, los indicadores para ECMAScript 6 son diferentes entre Node.js y io.js. La guía de io.js para las banderas de ECMAScript 6 se puede encontrar aquí .

Gabriel Tomitsuka
fuente
2
Un inconveniente interesante es que la tabla de comparación que menciona no se muestra correctamente si JS está deshabilitado en el navegador (que debería ser el predeterminado. Período. Y antes de preguntar: ¡Estamos hablando del lado del servidor JS aquí, no del lado del navegador!)
Tino
18
¿De verdad tienes JS deshabilitado en tu navegador? Debes ser ese tipo que suspira a millones de desarrolladores web cuando escuchan '¿funcionará sin javascript habilitado?'
Zasz
15

TL; DR io.js es la futura encarnación de node.js.

El sitio web io.js dice : "io.js es una plataforma javascript compatible con nodos y npm". Es un conjunto de herramientas (un runtime / VM, un administrador de paquetes, etc.) que es compatible con lo que existe actualmente como nodo. Presumiblemente, cualquier diferencia estará en la implementación subyacente, y cualquier extensión que io.js agregue más allá del conjunto de características de node.js.

(¿Por qué algo compatible con lo que ya existe dividiría a la comunidad? ¿Por qué es algo malo?)

¡Tenga en cuenta que io.js ni siquiera se ha lanzado aún! Sin embargo, la hoja de ruta io.js ilustra algunas diferencias particularmente relevantes entre nodo y io.

  • "Node ya es bastante estable" y, sin embargo, Node aún no ha llegado a 1.0; actualmente está en 0.10.33.
  • "Todo el ecosistema usa semver mientras que el nodo usa una estructura de lanzamiento confusa par / impar". Al introducir un nuevo nombre para un nuevo proyecto (ish), podrán arreglarlo.

Entonces, según tengo entendido, io.js es la versión 1.0-alpha1 y futura del nodo, pero con:

  • versiones de lanzamiento diferentes (sanas)
  • lanzamientos deliberadamente frecuentes
  • gobernanza por un comité técnico
Matt Ball
fuente
15
"la encarnación futura" esta respuesta está sesgada a favor de io.js.
Brendan
27
"La realidad tiene un sesgo liberal bien conocido" - Stephen Colbert
Matt Ball
2
@BrendanAshworth: Incluso si fuera cierto, eso no parece justificar un voto negativo. En caso de que haya algún argumento anti-io.js, ¡infórmenos!
Bergi
3
@Bergi En realidad, no rechacé la respuesta, solo porque sea parcial no significa que no sea una buena respuesta . Hay un voto a favor :)
Brendan
3
@BrendanAshworth Técnicamente, la declaración de "encarnación futura" no es incorrecta. io.js está impulsando el avance de node.js (específicamente soporte de ES6) y está encabezado por los creadores originales de node.js. Teniendo en cuenta que GoDaddy ha adquirido nodejitsu (el operador de NPM) y acaba de presentar una marca registrada en el nombre 'npm' y Joyent ha registrado el nombre 'node.js', el ecosistema node.js / npm puede estar en peligro. Si las cosas van hacia el sur, una migración a io.js es completamente posible.
Evan Plaice
9

io.js era una bifurcación de node.js. Pero ahora io.js y node.js nuevamente colaboran. Es por eso que node.js salta directamente de 0.12.x directamente a 4.0.0 ya que node.js versión 4.0.0 incluye todas las actualizaciones principales de io.js versión 3.0.0

VIKAS KOHLI
fuente