Erlang es un lenguaje de programación funcional y concurrente diseñado para construir sistemas distribuidos tolerantes a fallos. Desarrollado en Ericsson en 1986 por Joe Armstrong, Mike Williams y Robert Virding, Erlang fue creado para alimentar conmutadores telefónicos que requerían un 99.9999999% de tiempo de actividad (disponibilidad de "nueve nueves"). Se ejecuta en la máquina virtual BEAM e introdujo el modelo de Actores de concurrencia en la ingeniería de software mainstream.
Las características definitorias de Erlang son los procesos ligeros (millones pueden ejecutarse simultáneamente), el paso de mensajes (sin memoria compartida entre procesos) y el intercambio de código en caliente (actualizar sistemas en ejecución sin detenerlos). La biblioteca OTP (Open Telecom Platform) proporciona patrones probados en batalla para construir supervisores tolerantes a fallos, máquinas de estado y aplicaciones distribuidas.
¿Para qué se usa Erlang?
Erlang impulsa infraestructura de telecomunicaciones (los sistemas de Ericsson manejan el 40% del tráfico móvil global), sistemas de mensajería (WhatsApp fue construido sobre Erlang y manejó 2 mil millones de usuarios con un equipo de ingeniería pequeño), herramientas de colaboración en tiempo real, sistemas de procesamiento de pagos y bases de datos distribuidas como CouchDB y Riak. Elixir, construido sobre BEAM, ha extendido el alcance de Erlang al desarrollo web.
Erlang para principiantes
Erlang requiere un cambio de mentalidad — no hay bucles (usa recursión), no hay variables mutables y la concurrencia es mediante paso de mensajes en lugar de hilos. Pero estas restricciones producen software notablemente robusto. Aprender Erlang profundiza tu comprensión de concurrencia, tolerancia a fallos y sistemas distribuidos de formas que pocos otros lenguajes pueden. Usa el compilador de Erlang en línea de myCompiler para experimentar con pattern matching, procesos y comportamientos OTP.
Erlang vs otros lenguajes
Comparado con Go para concurrencia, el modelo de actores de Erlang proporciona un aislamiento de fallos más fuerte (un proceso que falla no afecta a otros) mientras que las goroutines de Go tienen menor sobrecarga pero comparten memoria. Comparado con Elixir, Erlang tiene una sintaxis más verbosa pero Elixir se ejecuta en la misma VM BEAM con una sintaxis más moderna inspirada en Ruby. Para tolerancia a fallos en sistemas distribuidos, Erlang/BEAM sigue siendo inigualable.
¿Por qué usar un compilador de Erlang en línea?
Un compilador de Erlang en línea, también llamado sandbox de Erlang o playground de BEAM, te permite compilar y ejecutar código Erlang directamente en tu navegador sin instalar el runtime de Erlang. Es ideal para aprender el pattern matching de Erlang, entender el modelo de actores de concurrencia, experimentar con comportamientos OTP y explorar conceptos de programación funcional sin una configuración local compleja.
El IDE de Erlang en línea de myCompiler proporciona el runtime completo de Erlang/OTP. Puedes crear procesos, usar paso de mensajes, hacer pattern matching con tuplas y listas, y usar módulos OTP estándar. Guarda y comparte programas Erlang por URL, completamente gratis.
¿Por qué es tan popular Erlang?
La influencia de Erlang supera con creces su base directa de usuarios. El modelo de concurrencia de la VM BEAM inspiró lenguajes como Elixir, Gleam y el modelo de actores de Akka en Scala. El uso de Erlang por parte de WhatsApp para servir a 2 mil millones de usuarios con 50 ingenieros se convirtió en algo legendario en la industria. Los árboles de supervisión del framework OTP son un patrón probado para construir sistemas distribuidos fiables. Para cualquiera que construya sistemas que nunca deben caerse, el modelo de Erlang sigue siendo el estándar de referencia.
Oportunidades laborales con Erlang
La experiencia en Erlang es especializada pero altamente valorada para roles de ingeniero de sistemas distribuidos, ingeniero de telecomunicaciones, ingeniero backend en empresas que usan BEAM (Ericsson, WhatsApp, Discord) y desarrollador Elixir (ya que Elixir y Erlang comparten el runtime BEAM). La creciente popularidad de Elixir para desarrollo web ha aumentado significativamente la demanda de ingenieros con experiencia en BEAM.