1 puntos por GN⁺ 1 일 전 | 1 comentarios | Compartir por WhatsApp
  • El nuevo sitio presenta a Elixir como un lenguaje basado en Erlang que puede escalar desde el desarrollo individual hasta equipos de cientos de personas, y desde un solo servidor hasta redes globales
  • Con base en la inmutabilidad, la seguridad de memoria y un sistema de tipos gradual, permite construir sistemas fáciles de recuperar ante fallos y mantenibles
  • Una sola base de código puede escalar a máquinas multinúcleo y a múltiples nodos, y al combinarse con Numerical Elixir también admite cómputo en GPU
  • Con los ecosistemas de Phoenix, Nerves, Nx y Broadway se pueden desarrollar web, sistemas embebidos, aprendizaje automático, procesamiento de datos, IoT y sistemas distribuidos
  • El gestor de paquetes, el formateador de código, las herramientas de documentación, IEx, Livebook y el ecosistema de Hex respaldan todo desde el prototipado hasta la operación en producción

Experiencia de desarrollo y escalabilidad

  • Elixir combina desarrollo rápido con prácticas sólidas para el trabajo real, sobre la base de la confiabilidad y tolerancia a fallos de Erlang acumuladas durante décadas
  • Busca código claro centrado en los datos y el dominio
    • Ofrece inmutabilidad y seguridad de memoria
    • Se puede aprovechar el sistema de tipos gradual de Elixir 1.20
  • Una sola base de código escala verticalmente en máquinas multinúcleo y horizontalmente mediante comunicación entre nodos, por lo que es adecuada para sistemas orientados a mensajes y sistemas web en tiempo real
  • Al combinarse con Numerical Elixir, el cómputo puede escalar entre núcleos, clústeres y GPU
  • Ha sido elegida durante varios años seguidos como una de las lenguas más admiradas del mundo, y los resultados pueden verse en la encuesta de Stack Overflow 2025
  • Incluye gestor de paquetes, formateador de código y funciones de documentación
    • Con el shell interactivo IEx y el notebook interactivo Livebook se pueden crear prototipos rápidamente y depurar en tiempo real sistemas en ejecución
  • Se usa en producción en distintas industrias y aplicaciones, desde desarrolladores independientes hasta empresas Fortune 500

Áreas de uso y ecosistema

  • Para desarrollo web se usan Phoenix, que acelera el desarrollo; LiveView, que añade funciones en tiempo real con poco código; Ecto para la capa de datos; y Plug
  • En sistemas embebidos, Nerves empaqueta toda la aplicación como firmware pequeño y ofrece actualizaciones inalámbricas y tolerancia a fallos de nivel carrier
    • Con AtomVM también es posible ejecutar Elixir en dispositivos tan pequeños como microcontroladores
  • En aprendizaje automático, Nx ofrece tensores acelerados por GPU, y Livebook permite ejecutar modelos preentrenados, visualizar datos y desplegar todo en un mismo entorno
  • Para procesamiento de datos y medios aprovecha backpressure y concurrencia
    • Broadway procesa millones de eventos desde colas
    • Membrane ofrece pipelines componibles para audio, video y más
  • Basado en la VM de Erlang, también se usa en IoT y sistemas distribuidos; entre los proyectos relacionados de Erlang están EMQX, RabbitMQ y Riak
  • En Hex se pueden explorar miles de paquetes de la comunidad, y el ecosistema sigue creciendo
  • Elixir Team lidera el desarrollo del lenguaje, y la Erlang Ecosystem Foundation apoya a Elixir y a la comunidad más amplia de Erlang
  • En Elixir Open Source Stewards, que contrata o patrocina a desarrolladores de código abierto, participan las siguientes empresas
    • Software Mansion: desarrolla herramientas full-stack como Membrane, Popcorn, LiveDebugger y Legion desde 2016
    • Dashbit: crea Elixir, Livebook, Broadway y Plug, y apoya a empresas en su adopción y escalamiento en producción
    • Jump: contribuye a Expert LSP y Quokka

1 comentarios

 
GN⁺ 1 일 전
Opiniones en Hacker News
  • José Valim y su equipo crearon un lenguaje y ecosistema Elixir realmente sobresalientes, y se agradece especialmente el esfuerzo constante durante el último año para el lanzamiento 1.20

    • Un fan de Erlang me dijo que, para ellos, Elixir es una variante detestable hecha por gente que no entendía bien Erlang y convirtió BEAM en algo al estilo Ruby, pero que gracias a eso se popularizó; me da curiosidad saber qué opinan de eso
  • Elixir es excelente, pero me gustaría que se invirtiera más dinero y esfuerzo de desarrollo en el propio BEAM para mejorar el rendimiento puro de ejecución, más allá de la concurrencia
    Durante los últimos 10 años o más, la mejora de rendimiento parece haber dependido en la práctica de una sola persona

    • Durante los últimos 5 o 6 años, varias personas han desarrollado el compilador JIT, y el equipo de WhatsApp también hizo contribuciones importantes
      Después de que el equipo de Erlang/OTP exprima todo el rendimiento posible del JIT, probablemente pase a optimizaciones entre módulos; habrá que rediseñar algunos elementos básicos del runtime, pero creo que se abrirán muchas posibilidades nuevas
    • Es bastante difícil mejorar el rendimiento de operaciones matemáticas en casos de uso reales dentro de un intérprete de bytecode
  • Empecé a aprender Elixir este año y me sorprendieron el lenguaje y las capacidades que ofrece BEAM; quedé completamente fascinado por un ecosistema subestimado
    El nuevo sitio también se ve genial

    • El desarrollador que disfruto escuchar, Joe Armstrong, escribió un texto en el que evaluaba Elixir de forma mayormente positiva; creo que, si no hubiera creado Erlang, habría sido desarrollador de Elixir
      https://joearms.github.io/published/2013-05-31-a-week-with-e...
      Que descanse en paz el gran Joe Armstrong
    • Erlang ha operado durante décadas telcos con capitalizaciones de mercado de decenas de miles de millones de dólares, y Elixir lo hizo más fácil de aprender; también reemplaza en gran medida las configuraciones de clúster improvisadas en entornos a gran escala
      Permite desplegar rápidamente en varias plataformas con una sola base de código, y Phoenix Channels también resulta económico
      https://quasar.dev/introduction-to-quasar/
  • Ojalá también se renueve la UI del foro, y espero que Elixir siga creciendo
    No solo es un gran lenguaje, sino que también es muy adecuado para programar con IA

    • En la comparación de Tencent, Elixir quedó primero en la clasificación general; se puede ver en la tabla 4, aunque el material ya tiene más de un año
      https://arxiv.org/pdf/2508.09101
  • Aunque no uso un monitor grande para los estándares actuales, me decepciona que la mitad de la pantalla quede vacía en el sitio
    No recuerdo cómo se veía el sitio anterior, así que no sé si realmente cambió

  • BEAM, el runtime de Elixir, es muy adecuado para la orquestación de agentes y sistemas multiagente; reuní contenido relacionado aquí
    https://josefrichter.design/blog/crowd

  • Uno de los usos clave de Elixir/Erlang parece ser la funcionalidad de clúster distribuido, y me interesan los casos de uso reales
    En el trabajo usé bastante Elixir, pero lo empleamos como un “Rails mejor” para escalar horizontalmente apps Phoenix independientes en un entorno Kubernetes tradicional, así que siento que nos perdimos su propósito principal

    • Antes trabajé en WhatsApp y usábamos activamente la funcionalidad distribuida de Erlang; entiendo que, después de mi salida, el tamaño del clúster creció mucho más
      Es muy cómoda, pero no hay límites de seguridad entre nodos y, si la red es inestable, se vuelve un dolor de cabeza
      En una app de chat, primero se envía un mensaje al servicio de base de datos de presencia para comprobar si la otra persona está en línea y, si devuelve un ID de proceso, se le envía un mensaje a ese proceso con la misma API, sin importar si está en la misma máquina o en otra
      Hay pocos entornos donde el envío arbitrario de mensajes entre procesos, hilos y tareas se aplique de forma tan natural a todo el sistema; si no hay ID de proceso, se envía el mensaje a la base de datos offline
    • He trabajado un poco con Elixir distribuido en Kubernetes usando Horde.DynamicSupervisor, y también hay otras opciones como swarm y DynamicSupervisor
      Sería bueno contar con un análisis claro de qué ventajas ofrecen estas abstracciones frente a enfoques que no son BEAM
      https://www.youtube.com/watch?v=nZmDEUeHeVI
    • Últimamente estuve creando un plano de control de Kubernetes en Elixir y seguí esperando el momento de usar la funcionalidad distribuida, pero en una situación donde se controla un DaemonSet escrito en Go no hizo tanta falta
      Aun así, es una estructura más acoplada que una app independiente y orquesta trabajos estilo Lambda o Fly.io sobre Firecracker
      https://jomcgi.dev/ember
    • Elixir/Erlang encaja muy bien en entornos semiembebidos que necesitan componentes robustos de comando y control de alto nivel con comportamiento determinista
      Hace mucho aplicamos Erlang a este equipo; fue divertido y hubo muchos desafíos interesantes para todos los participantes
      https://www.icare-world.com/us/product/icare-eidon/
  • Elixir es un lenguaje muy elegante, así que espero encontrar pronto una razón para usarlo

    • Al leer el libro de programación en Erlang de Joe Armstrong, cambió mi forma de ver la programación funcional y la abstracción, y gracias a eso me convertí en un mejor desarrollador Ruby
      Elegí Elixir por primera vez cuando Ruby no pudo manejar una gran cantidad de mensajes WebSocket; resultó especialmente brillante en entornos de alta concurrencia, y también me gusta Phoenix LiveView, con el que mantengo algunos proyectos secundarios
    • Me divertí creando un asistente personal multiagente; todavía está en desarrollo y no hay garantías, pero publiqué el motor que uso en la práctica
      https://github.com/ityonemo/ce_ce
    • Si tienes un programa que no necesita ejecutarse rápido, eso puede ser una razón para usar Elixir
    • En general, estoy de acuerdo en que Elixir mejoró Erlang, pero desde la perspectiva de alguien que ha usado Ruby durante mucho tiempo, no es tan elegante como esperaba
      Incluso una sintaxis simple como defmodule Xyz do se siente incómoda