erlang elixir otp

¿Hay cosas que Elixir puede hacer que Erlang no pueda, o viceversa?



otp (4)

Hay algunas cosas Creo que no puedes hacer una función anón 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 alguna vez, y si lo hiciera, podría hacerse fácilmente de alguna otra manera. Probablemente hay algunas otras cosas como esa que honestamente puedes ignorar.

En general, para las cosas que a la mayoría de la gente le importa todo lo que puede hacer en Erlang, puede hacerlo en Elixir y viceversa. La comunidad en el 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

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. Tengo las diferencias básicas entre los dos y me estoy inclinando hacia Elixir debido a las macros, una mejor sintaxis y un desarrollo más rápido del lenguaje en este día.

Mi pregunta es: si elijo Elixir, ¿tropezaré 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, la recarga de código, etc. con Elixir?

No estoy pidiendo la preferencia de alguien entre los dos; solo hechos sobre las posibilidades de los idiomas. Preferiblemente de alguien que usó ambos en la producción.


No debe tropezar con nada que pueda hacer en uno que no puede 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:

:erlang_module.erlang_function(args)

en Erlang:

''Elixir.ElixirModule'':elixir_function(args)


Solo para prefacio: solo he usado Elixir en producción y no Erlang.

Sinceramente, recomendaría Elixir. Esta es mi opinión y no necesariamente la correcta para usted, pero a continuación enumeraré mis razones.

  1. Productividad: vengo de un fondo Ruby / Rails, por lo que la sintaxis y el estilo de Elixir es algo que me era muy familiar. Uno de los principales factores que me ayuda a determinar si aprender o no un idioma es cuán productivo puedo ser en él, principalmente por qué elegí Ruby. Elixir es igual. Puedo trabajar tan rápido como Ruby con todos los beneficios adicionales de concurrencia y coincidencia de patrones.
  2. Erlang: dado que Elixir está construido sobre Erlang y se compila en erlang y la vm de viga, tiene acceso a todos los módulos y paquetes de erlang. Entonces, si le preocupa usar el elixir y perderse todas las características de Erlang, no debería estarlo. Elixir incluso tiene sus propias implementaciones de la mayoría de las características más grandes de Erlang / OTP como GenServer, GenEvent, etc.
  3. Comunidad / Recursos: La comunidad de Elixir es realmente excelente. El canal flojo es muy popular y una excelente manera de obtener algunas respuestas para preguntas de principiantes. Ya hay algunos libros realmente buenos escritos sobre el lenguaje (Programming Elixir 1.2 - Dave Thomas, autor del Ruby Pickaxe) que también hacen que ingresar al idioma sea realmente fácil.

Realmente, si tienes un lío 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á en aumento, no recuerdo los números exactos, pero recuerdo haber leído algo del sitio web de Hex (administrador de paquetes) sobre un aumento considerable en las descargas de paquetes.


TL; DR - Comience con Elixir

Erlang tiene una curva de aprendizaje más pronunciada en comparación con Elixir. Una vez que comience a aprender Elixir, automáticamente comenzará 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 conocida como metaprogramación).

Puede usar Elixir con Erlang y viceversa, de ahí el ecosistema Erlang completo de más de 20 años de bibliotecas.

Más detalles de Erlang Solutions

La productividad `` lista para usar '''' de Elixir se logra mediante un fuerte enfoque en las herramientas y la conveniencia en la expresión de la manipulación de datos. El diseño del sistema es el mismo en Elixir y Erlang, pero Elixir elimina una gran cantidad de código repetitivo y es más fácil de extender. La eliminación de repetitivos aumenta la productividad y permite a los programadores obtener comentarios más rápido, crucial cuando desea lanzar su producto al mercado lo más rápido posible. Menos repetitivo también se convierte en desarrolladores felices, y los desarrolladores felices son desarrolladores sorprendentemente productivos.

Publicación de blog de Joe Armstrong (inventor de Erlang) sobre Elixir

Comience aquí para aprender sobre Elixir - Comenzando

Una vez que sienta que va bien, trabaje para practicar el ejercicio y otros recursos .