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
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.
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.
qué tal ahora, ahora son 5 años, dime ahora cuál debo usar. –
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
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
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.
+1 para la cosa "sin estado compartido". –
- 1. ¿Hay algo así como un modelo funcional?
- 2. Algo así como Tryparse de Convert.FromBase64String
- 3. ¿Hay algo así como "global ::" para VB.NET?
- 4. Algo así como Apache Zookeeper sin Java?
- 5. ¿Existe algo así como XML 2.0?
- 6. Algo así como boost :: multi_index para Python
- 7. ¿Hay algo así como AutoMapper para Scala?
- 8. ¿Hay algo así como indicadores en Lua?
- 9. ¿Hay algo así como Incanter para Haskell?
- 10. ¿Hay algo así como Codecademy para Java
- 11. ¿Hay algo así como WMI para Linux?
- 12. ¿Hay algo así como `last` for` map`?
- 13. ¿Existe algo así como AJEDREZ para Java?
- 14. ¿Hay algo así como find_if en Java?
- 15. ¿Hay algo así como bpython para Ruby?
- 16. ¿Hay algo así como un bool nulo en vb.net
- 17. ¿Existe algo así como Common Table Expressions en PL/SQL?
- 18. Algo así como 'contains any' para Java set?
- 19. Analizador de código fuente de Ruby (algo así como pylint)
- 20. simplificar C++ código sencillo - algo así como pitones cualquier
- 21. ¿hay algo así como isset de php en javascript/jQuery?
- 22. ¿Hay algo así como TimeSpan en el desarrollo de Android?
- 23. ¿Scala/java tiene algo así como StringIO de python?
- 24. ¿Hay algo así como auto para los métodos de clase?
- 25. ¿Python tiene algo así como la palabra clave de C++?
- 26. ¿Hay algo así como un desminificador de javascript (deobfuscator)?
- 27. ¿Existe algo así como un fragmento de HTML5 válido?
- 28. Algo así como un detector de código innecesario para NetBeans
- 29. Necesita algo así como una señal terminada de QWidget
- 30. ¿Cómo implementar escasamente algo así como las alertas de Google?
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
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. –
¿Qué ofrece cada uno de estos que algo como Common Lisp no puede y no puede hacer? – MadPhysicist