typestar

Lenguajes

Erlang

Diseñado en Ericsson para centrales telefónicas: procesos ligeros, supervisión y tolerancia a fallos.

Practica Erlang

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.

Practica Erlang

31 pasos en 1 tours, desde lo básico hasta programas completos.

Documentación oficial

Otros lenguajes