
Compartir:
Actor de formación con una disertación sobre la comedia, llegué al desarrollo de PHP a través de la escena de las reuniones. Puedes encontrarme hablando y escribiendo sobre tecnología, o tocando/comprando discos raros de mi colección de vinilos.
Una (muy) breve historia de Erlang
Tiempo de lectura: 5 minutos
A pesar de su lanzamiento en 1986 (apenas dos años después de que naciera quien escribe naciera), sólo conocí Erlang aproximadamente en 2017. Como desarrollador de aplicaciones web, me encontré con lo que muchos escenarios probables serían para todos los demás: RabbitMQ. En ese momento, estábamos usando RabbitMQ en un proyecto que tenía un particularmente complejo y lento proceso ETL. Necesitábamos velocidad, concurrencia y bloqueo seguro de registros. Más tarde, descubrí que la razón por la que RabbitMQ podía lograr esto era que estaba escrito específicamente en Erlang para estos requisitos.
Dado que se segundo salario medio más alto en 2025¿qué es exactamente y qué aplicaciones concretas tiene?
El paisaje
El punto de partida de cualquier historia es ver dónde está la brecha. PHP surgió como una herramienta de scripting para crear dinámicamente páginas HTML, JavaScript comenzó como LiveScript para permitir un tiempo de ejecución dentro del navegador. Desde aquellos días de 1995, ambos lenguajes han evolucionado totalmente hasta niveles irreconocibles debido a la naturaleza de sus requisitos. De forma similar, Erlang se creó específicamente para las comunicaciones. En ese momento, las telecomunicaciones tenían la necesidad de un código que pudiera manejar un escalado masivo, una concurrencia ultraalta y una ejecución en tiempo real. Su nacimiento se debió al desarrollo del Conmutador ATM AXD301creado por Ericssonque necesita lo que se conoce como disponibilidad "nueve nueves". En términos sencillos, se trata de un conmutador de hardware cuyo software requiere una tasa de disponibilidad del 99,9999999%. Este lenguaje de programación no existía.
Evolución
Erlang realmente comenzó a ganar tracción cuando Ericsson tomó la decisión de hacer el lenguaje de código abierto en diciembre de 1998. El lenguaje había salido a la luz, y con él llegaron proyectos externos. A partir de ese momento, fueron apareciendo materiales que explicaban a grandes rasgos cómo utilizar este lenguaje y cuáles eran sus casos de uso más importantes.
"Let It Crash"
Let it burn!Bien, aquí tienes un concepto novedoso: te animamos a que dejes que los procesos fallen. Vengo de una tierra donde la programación defensiva es absolutamente esencial para la creación de aplicaciones. Es en este punto donde "lo entiendo", porque Erlang no está diseñado como un lenguaje backend clásico basado en servidor. La razón por la que es aceptable para los choques es que se anima a los desarrolladores a escribir código en pequeños trozos que puedan ejecutarse todos de forma aislada. La ejecución de la aplicación debe ser supervisada por sistemas que busquen hilos o procesos bloqueados, que se reiniciarán. Es esta filosofía la que da como resultado una alta disponibilidad: no importa si una carga útil no se completa, sólo que los datos necesarios se transmitan en algún momento. Así es como Erlang ha llegado a tener tanta presencia en los mercados verticales de comunicaciones: la resiliencia que crea es la razón por la que RabbitMQ, un cliente de mensajería, está escrito en Erlang. También explica por qué WhatsApp de Meta está escrito en Erlango la popular aplicación de mensajería Discord está escrita en Elixir. (un Erlang ligeramente modificado que aún se ejecuta en la VM BEAM) y, de hecho, por qué ya tenía conocimientos previos sobre los casos de uso de Erlang, dado que Vonage es una plataforma de comunicaciones como servicio (CPaaS).
Concurrencia
¿Cómo puede gestionar este nivel de concurrencia? Los desarrolladores de Aplicaciones Web tradicionales pueden haberse encontrado con sistemas Async/Promise, como en C# o el sistema de un solo hilo Node.js. No es así como funciona Erlang: en lugar de hilos del Sistema Operativo, tiene su propia VM llamada BEAM, que maneja procesos individuales ligeros. Debido a que BEAM puede cambiar entre ellos (similar a cómo algo como PHP Fibers trajo concurrencia) a la velocidad del rayo, puede manejar millones de estos procesos a la vez.
Ver cómo se rompe
La tolerancia a fallos que mencioné anteriormente se gestiona mediante árboles de supervisión. Este patrón de diseño interno forma parte del núcleo de la plataforma de telecomunicación abierta de Erlang: piense en él como el equivalente de la biblioteca estándar. Hay una red de supervisores que monitorizan los procesos, lo que enfatiza la importancia de que los desarrolladores se fijen en reiniciar los procesos en lugar de intentar la gestión de errores tradicional al estilo try-catch.
A prueba de balas: Intercambio en caliente
A veces, las características de los lenguajes de programación con las que nunca me había topado me dejan boquiabierto. monkeypatch el núcleo del lenguaje Ruby en tiempo de ejecuciónalgo que no me cabía en la cabeza. Algo parecido a este descubrimiento: ¿recuerdas que la tolerancia a fallos está en el corazón de Erlang? Bueno, cuando tienes Erlang en ejecución, puedes intercambiar código vivo sin detener la máquina virtual. Si alguna vez te has preguntado cómo se las arregla WhatsApp para enviar un montón de actualizaciones sin tiempo de inactividad, esta es la respuesta.
Conclusión
Hemos cubierto esencialmente la filosofía básica de lo que ha hecho de Erlang lo que es. A partir de estos antecedentes, hace que el lenguaje sea una opción ideal no sólo para mensajería y comunicaciones, sino para cualquier otra cosa que requiera el mismo nivel de tiempo de actividad y tolerancia a fallos. También tiene una gran aplicación cuando se utiliza en bases de datos, lo que explicaría por qué tanto CouchDB y Riak están escritos en Erlang. Así que, para los desarrolladores ambiciosos que están pensando en escribir su propio backend IoT, o tal vez buscando integrar APIs de red en su pila, nos encantaría saber en qué estás trabajando.
¿Tienes alguna pregunta o algo que compartir? Únete a la conversación en Slack de la comunidad de Vonagey mantente actualizado con el Boletín para desarrolladoressíguenos en X (antes Twitter)suscríbete a nuestro canal de YouTube para ver tutoriales en video, y sigue la página de página para desarrolladores de Vonage en LinkedInun espacio para que los desarrolladores aprendan y se conecten con la comunidad. Mantente conectado, comparte tu progreso y entérate de las últimas noticias, consejos y eventos para desarrolladores.
Lecturas complementarias
Compartir:
Actor de formación con una disertación sobre la comedia, llegué al desarrollo de PHP a través de la escena de las reuniones. Puedes encontrarme hablando y escribiendo sobre tecnología, o tocando/comprando discos raros de mi colección de vinilos.