Erlang | ||
---|---|---|
Desarrollador(es) | ||
Ericsson https://www.erlang.org/ | ||
Información general | ||
Extensiones comunes | .erl .hrl | |
Paradigma | multiparadigma: funcional, concurrente | |
Apareció en | 1986 | |
Diseñado por | Joe Armstrong Robert Virding Mike Williams | |
Última versión estable | 26.2.1[1] (18 de diciembre de 2023) | |
Sistema de tipos | Dinámico, fuerte | |
Implementaciones | Erlang | |
Influido por | Prolog, Smalltalk | |
Ha influido a | F#, Clojure, Rust, Scala, Opa, Reia, Elixir | |
Licencia | Erlang Public License[2] (MPL modificada) | |
Erlang es un lenguaje de programación concurrente (u orientado a la concurrencia) y un sistema de ejecución que incluye una máquina virtual (BEAM) y bibliotecas (OTP).[3]
El subconjunto de programación secuencial de Erlang es un lenguaje funcional, con evaluación estricta, asignación única, y tipado dinámico. Fue diseñado en la compañía Ericsson para realizar aplicaciones distribuidas, tolerantes de fallos, soft-real-time y de funcionamiento ininterrumpido. Proporciona el cambio en caliente de código de forma que este se puede cambiar sin parar el sistema. Originalmente, Erlang era un lenguaje propietario de Ericsson, pero fue cedido como software de código abierto en 1998. La implementación de Ericsson es principalmente interpretada, pero también incluye un compilador HiPE (sólo soportado en algunas plataformas).
La creación, gestión y comunicación de procesos es sencilla en Erlang, mientras que en muchos lenguajes, los hilos se consideran un apartado complicado y propenso a errores. En Erlang toda concurrencia es explícita.
Erlang recibe el nombre de A. K. Erlang. A veces se piensa que el nombre es una abreviación de ERicsson LANGuage, debido a su uso intensivo en Ericsson. Según Bjarne Däcker -quien fue el jefe del Computer Science Lab en su día-, esta dualidad es intencional.