Elixir
Un lenguaje funcional sobre la máquina virtual de Erlang, usado en sistemas concurrentes y tolerantes a fallos.
27 pasos en 1 tours, desde lo básico hasta programas completos.
Los tours
- Primera versión
- 2011
- Creado por
- Jose Valim
- Tipado
- Dinámico y fuerte; un chequeo de tipos de teoría de conjuntos va creciendo en compilación
- Los fragmentos siguen
- 1.20
- Extensiones de archivo
- .ex, .exs
Para qué sirve
Elixir corre sobre la máquina virtual de Erlang, el runtime que Ericsson construyó para centrales telefónicas que no tienen permitido detenerse. Todo lo que hace famosa a la plataforma — millones de procesos livianos, paso de mensajes en vez de memoria compartida, supervisores que reinician lo que se cae — viene gratis, y Elixir lo envuelve en una sintaxis que quien programa Ruby puede leer el primer día. Discord sostuvo millones de usuarios concurrentes sobre él; la promesa son sistemas de tiempo casi real que se quedan arriba.
El lenguaje es datos inmutables más coincidencia de patrones, hasta el fondo. Las cabezas de función coinciden por forma, las tuplas {:ok, valor} y {:error, razon} se enhebran por encadenamientos con with, y el operador pipe |> convierte llamadas anidadas en una historia de izquierda a derecha. Las macros hacen que buena parte del lenguaje esté escrita en sí mismo, y las herramientas — mix, hex, ExUnit, un formateador incluido — llegaron pulidas años antes que las de la mayoría de sus rivales.
Phoenix es la razón por la que llega mucha gente: un framework web cuyo LiveView renderiza páginas interactivas desde el servidor sin JavaScript escrito a mano, montado sobre un proceso barato por navegador conectado. El mismo truco impulsa a Nerves en hardware embebido y a Livebook en cuadernos computacionales. Es un mercado laboral chico junto al de Python, pero los equipos que entregan Elixir tienden a seguir entregándolo.
De dónde viene
El cimiento es Erlang, diseñado en Ericsson en 1986 por Joe Armstrong, Robert Virding y Mike Williams para operar centrales de telecomunicaciones a través de actualizaciones de software, fallas de hardware y décadas de servicio. Su central AXD301 se volvió la leyenda: una disponibilidad reportada con tantos nueves que la frase nueve nueves todavía persigue a la máquina virtual.
Jose Valim, entonces miembro del equipo central de Ruby on Rails, chocó con el muro de concurrencia de Ruby y salió a mirar otros runtimes. Publicó Elixir en 2011: la máquina y la semántica de Erlang, sintaxis accesible, metaprogramación de verdad y documentación de primera clase. La versión 1.0 llegó en 2014 con una promesa de compatibilidad que el lenguaje ha cumplido desde entonces.
Phoenix (1.0 en 2015) le dio a Elixir su nave insignia, y LiveView (2019) le dio una funcionalidad que otros stacks pasaron años imitando. Desde 2022 el equipo de Valim e investigadores del CNRS construyen un sistema gradual de tipos de teoría de conjuntos directo en el compilador, entregado por partes en los lanzamientos desde 1.17 — tipando el lenguaje sin bifurcarlo.
Cómo se siente teclearlo
Elixir se teclea en ráfagas cortas de símbolos entre palabras legibles: |> abre la mayoría de las líneas de pipeline, &1 y fn -> end arman funciones, #{} deja caer expresiones dentro de las cadenas y los átomos siguen a un dos puntos. Los bloques cierran con un end pelado en vez de llaves, así que las líneas terminan limpias. Los identificadores son snake_case con finales ? y ! en los picantes, los módulos van en CamelCase, y = le pide shift al teclado patrón tras patrón.
27 pasos en 1 tours, desde lo básico hasta programas completos.