Gleam: El lenguaje de programación funcional y concurrente

Puntos Clave
  • Compila a Erlang o JavaScript, permitiendo ejecución en la BEAM o en el navegador.
  • Es un lenguaje estáticamente tipado, a diferencia de Erlang y Elixir.
  • Su toolchain está implementado en Rust y se distribuye como un único binario nativo.

Gleam es un lenguaje de programación de alto nivel, funcional, concurrente y de propósito general. Su principal característica es que se compila a código fuente de Erlang o JavaScript, permitiendo que las aplicaciones se ejecuten en la máquina virtual BEAM de Erlang o en cualquier entorno compatible con JS.

Historia y Evolución

Creado originalmente en 2016 por Louis Pilfold para una charla en una conferencia, Gleam fue posteriormente rediseñado y adaptado para convertirse en el lenguaje que es hoy. El camino hacia la estabilidad ha sido marcado por hitos importantes:

  • 15 de abril de 2019: Lanzamiento de la primera versión numerada.
  • Versión v0.16: Introducción de la capacidad de compilación hacia JavaScript.
  • 2023: La Erlang Ecosystem Foundation financió un curso de aprendizaje en la plataforma Exercism.
  • 4 de marzo de 2024: Lanzamiento oficial de la versión v1.0.0.
  • Abril de 2025: Thoughtworks lo incluyó en su Technology Radar en el anillo de "Assess" (tecnologías que vale la pena explorar).

Adopción y Comunidad

El crecimiento de Gleam ha sido impulsado por un fuerte énfasis en la experiencia del desarrollador (DX). A pesar de que se compila para la máquina virtual BEAM, la mayoría de los nuevos usuarios de Gleam no provienen de fondos en Erlang o Elixir, sino de otros ecosistemas de programación.

Según la encuesta de desarrolladores de 2024, Louis Pilfold reportó que los usuarios de Gleam provienen mayoritariamente de otros lenguajes. Además, en 2025, Gleam apareció por primera vez en la encuesta de Stack Overflow, posicionándose como el segundo lenguaje "más admirado", con un 70% de los usuarios deseando continuar trabajando con él.

Características Técnicas

Gleam destaca por su simplicidad, tipado estático y herramientas fáciles de usar. Entre sus características principales se encuentran:

  • Tipo Result: Para un manejo de errores robusto y explícito.
  • Objetos Inmutables: Garantizan que los datos no cambien una vez creados.
  • Tipos de Datos Algebraicos: Permiten definir estructuras de datos complejas y seguras.
  • Pattern Matching: Facilitación de la búsqueda y desestructuración de datos.
  • Sin punteros nulos: Elimina una categoría entera de errores comunes de ejecución.
  • Sin conversiones de tipo implícitas: Evita comportamientos inesperados mediante la exigencia de tipado fuerte.

Implementación y Herramientas

La cadena de herramientas de Gleam está implementada en Rust, lo que proporciona un único binario nativo que integra el compilador, la herramienta de construcción, el gestor de paquetes, el formateador de código y el servidor de lenguaje. Además, existe un binario de WebAssembly que permite compilar código Gleam directamente en el navegador, facilitando el the tour interactivo y el playground online del lenguaje.

Preguntas Frecuentes

Respuestas a las dudas más habituales sobre Gleam: El lenguaje de programación funcional y concurrente.

Gleam es un lenguaje de programación funcional, concurrente y de propósito general que se compila a Erlang o JavaScript.

Volver al índice enciclopédico