Erlang
Diseñado en Ericsson para centrales telefónicas: procesos ligeros, supervisión y tolerancia a fallos.
31 pasos en 1 tours, desde lo básico hasta programas completos.
Los tours
- Primera versión
- 1986
- Creado por
- Joe Armstrong, Robert Virding, and Mike Williams at Ericsson
- Tipado
- Dinámico, de asignación única; los procesos y mensajes son el lenguaje
- Los fragmentos siguen
- OTP 28
- Extensiones de archivo
- .erl, .hrl
Para qué sirve
Erlang se construyó en el laboratorio de Ericsson para programar centrales telefónicas — sistemas que deben correr décadas, sobrevivir fallas de hardware a mitad de llamada y actualizarse sin colgarle a nadie. Esos requisitos produjeron sus respuestas famosas: millones de procesos livianos que no comparten memoria, paso de mensajes como única comunicación, 'déjalo caer' con supervisores reiniciando lo caído, y carga de código en caliente en un sistema vivo. La central AXD301 que despachó reportó nueve nueves de disponibilidad.
La máquina virtual BEAM y las bibliotecas OTP son el producto real: gen_server, supervisores y aplicaciones codifican treinta años de sistemas imparables en comportamientos reutilizables. WhatsApp corrió cientos de millones de usuarios concurrentes con un equipo de Erlang célebremente chico; RabbitMQ, CouchDB y buena parte de la infraestructura mundial de mensajería corren sobre la BEAM, y Elixir trajo a una nueva generación al mismo runtime.
El lenguaje en sí es chico y raro de maneras productivas: las variables asignan una vez, la coincidencia de patrones hace el trabajo que en otros lados hace la asignación, las cabezas de función con guardas reemplazan escaleras de if, y los errores son datos comunes en tuplas ok/error. Su sintaxis desciende de Prolog — comas, puntos y comas y puntos finales como separadores — que se lee extraño una semana y sensato para siempre después.
De dónde viene
Joe Armstrong, Robert Virding y Mike Williams empezaron Erlang en 1986 en el Laboratorio de Ciencias de la Computación de Ericsson, prototipando en Prolog para hallar la forma correcta del software de telecomunicaciones; el nombre honra al teórico danés de colas Agner Krarup Erlang (y, convenientemente, ERicsson LANGuage). Se despachó dentro de productos Ericsson durante los primeros 90, con la VM BEAM llegando en 1993.
En 1998 Ericsson, en un arranque de cautela de proveedor único, prohibió Erlang para proyectos nuevos — y lo liberó como open source de salida. El middleware OTP del equipo se fue con él, y la prohibición se volvió la liberación del lenguaje: se formó la comunidad, la tesis de Armstrong codificó la filosofía, y 'Programming Erlang' lo llevó a una generación de gente de sistemas distribuidos.
La era multinúcleo volvió su modelo de mensajes súbitamente mainstream: la BEAM escaló entre núcleos mientras los lenguajes de locks sufrían, la compra de WhatsApp en 2014 volvió famoso el caso de estudio, y Elixir (2012) le dio al runtime una segunda audiencia con sabor a Ruby. Ericsson todavía custodia OTP con entregas anuales; la Erlang Ecosystem Foundation de 2019 carga ahora el lado comunitario.
Cómo se siente teclearlo
Erlang se escribe como Prolog con casco: Variables en UpperCamel, átomos en minúscula, y el trío de separadores — coma entre expresiones, punto y coma entre cláusulas, punto final para cerrar — haciendo lo que en otros lados hacen las llaves. La coincidencia de patrones es tipeo constante: tuplas entre llaves, celdas cons como [H | T], y la flecha -> cayendo tras cada cabeza de cláusula. Los grupos característicos son io:format con sus directivas de tilde, llamadas modulo:funcion con dos puntos, y ! para enviar. Denso en puntuación, pero rítmico una vez que la forma de cláusula se asienta en los dedos.
31 pasos en 1 tours, desde lo básico hasta programas completos.
Documentación oficial
- erlang.org
- El manual de referencia
- La referencia de STDLIB
- Learn You Some Erlang
- Los principios de diseño de OTP