Esta pregunta está en el contexto de Beam VM y las capacidades que proporciona, no en el contexto general de lo que puede hacer un lenguaje completo de Turing. Quiero invertir algo de tiempo para aprender Erlang puro o Elixir. Entiendo las diferencias básicas entre los dos y me inclino por Elixir debido a las macros, una mejor sintaxis y un desarrollo más rápido del lenguaje este día.
Mi pregunta es: si elijo Elixir, ¿me toparé con algo que no puedo hacer en él, pero que puedo hacer en Erlang? ¿Puedo usar todas las cosas de OTP, todas las bibliotecas de Erlang, recargar código, etc. con Elixir?
No estoy preguntando por la preferencia de alguien entre los dos; solo hechos sobre las posibilidades de los idiomas. Preferiblemente de alguien que haya usado ambos en producción.
Respuestas:
Solo para comenzar, solo he usado Elixir en producción y no Erlang.
Sinceramente, recomendaría Elixir. Esta es mi opinión y no necesariamente la adecuada para usted, pero a continuación enumeraré mis razones.
Realmente, si tienes problemas con los dos, probablemente llegarás a la misma decisión de que Elixir es un lenguaje mucho más agradable con todas las características de Erlang + More. También está aumentando, no puedo recordar los números exactos, pero recuerdo haber leído algo del sitio web Hex (administrador de paquetes) sobre un aumento considerable en las descargas de paquetes.
fuente
No debe tropezar con nada que pueda hacer en uno que no pueda hacer en el otro, ya que puede llamar libremente al código Elixir desde Erlang y viceversa. Incluso puede mezclar fácilmente archivos Erlang y Elixir en un proyecto.
En Elixir:
en Erlang:
fuente
TL; DR - Comience con Elixir
Erlang tiene una curva de aprendizaje más pronunciada en comparación con Elixir. Una vez que comiences a aprender Elixir, automáticamente comenzarás a aprender Erlang. Por lo tanto, comience con Elixir. Elixir está escrito en Erlang y Elixir. Vea la distribución en Github (ya que Elixir está lleno de macros, también conocido como metaprogramación).
Puede usar Elixir con Erlang y viceversa, de ahí el ecosistema completo de Erlang de más de 20 años de bibliotecas.
Más detalles de Erlang Solutions
Publicación del blog de Joe Armstrong (inventor de Erlang) sobre Elixir
Empiece aquí para aprender sobre Elixir - Introducción
Una vez que sienta que va bien, trabaje para practicar el Ejercicio y otros recursos .
fuente
Hay algunas cosas. Creo que no se puede hacer una función anon recursiva en Elixir. Ahora, para ser justos, esto es algo que en más de 8 años de Erlang no creo que haya necesitado hacer nunca, y si lo hiciera, podría hacerse fácilmente de alguna otra manera. Probablemente hay algunas otras cosas como esa que, honestamente, puede ignorar.
En general, para las cosas que a la mayoría de la gente le importa cualquier cosa que puedas hacer en Erlang, puedes hacer en Elixir y viceversa. La comunidad del lado de Elixir parece ser más activa, por lo que sugeriría comenzar allí. Recientemente me mudé de Erlang a Elixir y, con la excepción de algunas cosas elegantes en Proper, puedo decir que es una transición bastante fácil
fuente