2010-10-08 40 views
11

Me doy cuenta de que son bestias diferentes que se utilizan para resolver diferentes problemas, pero me gustaría pedir una lista enumerada de las ventajas de Erlang sobre node.js (y viceversa). ¿Cuándo usarías uno sobre el otro?Ventajas de Erlang sobre (algo así como) node.js?

Respuesta

15

Erlang es un lenguaje y un tiempo de ejecución. Estoy asumiendo que usted desea una comparación del tiempo de ejecución de Erlang con Node.js

En primer lugar voy a enumerar las similitudes:

  • Ambos se prestan a la programación orientada a eventos.
  • Ambos se centran en la programación altamente asíncrona.

Y luego entonces el Erlang tiene ventajas:

  • mensaje Erlangs pasar abstrae las diferencias entre los procesos locales y distribuidas que hacen más fácil la programación distribuida.
  • La carga de códigos calientes de Erlangs permite lanzamientos en funcionamiento de servicios sin interrumpir ninguna actividad actual.
  • Erlang tiene herramientas superiores para el empaquetado y la implementación.
  • El supervisor de Erlangs y los comportamientos gen_server proporcionan un marco superior para construir sistemas extremadamente robustos y tolerantes a fallas.
+2

fuerzas que yo sepa Node.js que escribir código orientado a eventos donde Erlang sólo le da la opción, así que puede caer de nuevo a un estilo de código diferente, cuando sea necesario. – ZeissS

+1

La carga en caliente es un tema candente en la comunidad de nodos, y podemos ver eso como una posibilidad pronto. Hay formas de hacerlo, usando la API V8 existente, la pregunta es principalmente cómo hacerlo sin problemas. –

+0

¿Qué ofrece cada uno de estos que algo como Common Lisp no puede y no puede hacer? – MadPhysicist

11

Erlang tiene 20 años y ha sido probado en batallas muchas veces. Utiliza todos los núcleos en sus sistemas y facilita la agrupación en clústeres.

Node.js es aún muy joven, sólo se utilizará un conductor por el tiempo de ejecución.

Y todo lo que dice Jeremy Wall.

+0

qué tal ahora, ahora son 5 años, dime ahora cuál debo usar. –

+0

Todavía soy un gran admirador de Erlang, y con Elixir en el paisaje, el VM ahora tiene un lenguaje con el potencial de ser bastante popular. El Phoenix Framework es fantástico, y ejabberd puede integrar los módulos de Elixir de forma bastante elegante. – cstar

+0

No me gustaría quitar este comentario, y no tengo mucha experiencia con erlang. Sin embargo, vale la pena mencionar que las bibliotecas centrales bastante pequeñas de nodejs son tan jóvenes (streams, etc.), pero la parte mucho más "grande" es V8, el motor de javascript googles. Así que las bibliotecas han pasado por un montón de iteraciones y en este punto se consideran bastante estables, pero sus principales aspectos son muy sólidos porque el V8 es mucho más antiguo y está mucho más probado en la batalla. – nahelm

4

No descartes la potencia de la coincidencia de patrones Erlang. Por mucho que me guste JavaScript, esta característica de lenguaje adictivo simplemente no funciona. También parece que la comunidad JS no aprecia el paradigma de estado compartido. Finalmente, las múltiples instancias para utilizar múltiples núcleos me parecen retrógradas.

+0

+1 para la cosa "sin estado compartido". –

Cuestiones relacionadas