Gleam (programming language)

Statically typed functional programming language From Wikipedia, the free encyclopedia

Gleam is a general-purpose, concurrent, functional, high-level programming language that compiles to Erlang or JavaScript source code.[2][7][8]

DesignedbyLouis Pilfold
DeveloperLouis Pilfold
FirstappearedJune 13, 2016; 9 years ago (2016-06-13)
Quick facts Paradigm, Designed by ...
Gleam
Lucy, the starfish mascot for Gleam[1]
ParadigmMulti-paradigm: functional, concurrent[2]
Designed byLouis Pilfold
DeveloperLouis Pilfold
First appearedJune 13, 2016; 9 years ago (2016-06-13)
Stable release
1.14.0[3] Edit this on Wikidata / 25 December 2025; 2 months ago (25 December 2025)
Typing disciplineType-safe, static, inferred[2]
Memory managementGarbage collected
Implementation languageRust
OSFreeBSD, Linux, macOS, OpenBSD, Windows[4]
LicenseApache License 2.0[5]
Filename extensions.gleam
Websitegleam.run
Influenced by
[6]
Close

Gleam is a statically-typed language,[9] which is different from the most popular languages that run on Erlang’s virtual machine BEAM, Erlang and Elixir. Gleam has its own type-safe implementation of OTP, Erlang's actor framework.[10] Packages are provided using the Hex package manager, and an index for finding packages written for Gleam is available.[11]

History

Gleam was originally created in 2016 by Louis Pilfold for a conference talk. It was later redesigned and adapted into what it is today.[6]

The first numbered version of Gleam was released on April 15, 2019.[12] Compiling to JavaScript was introduced with version v0.16.[13]

In 2023 the Erlang Ecosystem Foundation funded the creation of a course for learning Gleam on the learning platform Exercism.[14]

Version v1.0.0 was released on March 4, 2024.[15]

In April 2025, Thoughtworks added Gleam to its Technology Radar in the Assess ring (languages & frameworks worth exploring). [16]

Adoption

Gleam has seen some adoption in recent years.[17] According to a blog post, the language creators have placed strong emphasis on developer experience (DX), which has contributed to its appeal.[18][better source needed]

Although it compiles to run on the BEAM virtual machine, most new Gleam users do not have a background in Erlang nor Elixir, two older BEAM languages.[19] In 2025, Louis Pilfold reported on results from the 2024 developer survey, which received 841 responses.[19] Pilfold concluded that Gleam developers "overwhelmingly come from other ecosystems other than Erlang and Elixir".[19] The core team also reported on Gleam's efforts to expand the BEAM ecosystem in a keynote talk at Code BEAM Europe 2024.[20]

Developers have cited Gleam’s simplicity, static typing, and user-friendly tooling as reasons for adoption.[21] The developer behind Nestful described their motivations for rewriting the project in Gleam as driven by its clarity and ease of use.[22] There is a community-maintained list of companies using Gleam in production.[23]

In 2025, Gleam appeared for the first time in the Stack Overflow Developer Survey, where it was the 2nd "most admired" language, with 70% of users currently using the language wanting to continue working with it.[17] 1.1% of developer respondents reported doing "extensive development work" in the language over the past year.[17]

Features

Gleam includes the following features.[8][24]

Example

A "Hello, World!" example:

import gleam/io

pub fn main() {
  io.println("hello, world!")
}

Gleam supports tail call optimization:[25]

pub fn factorial(x: Int) -> Int {
  // The public function calls the private tail recursive function
  factorial_loop(x, 1)
}

fn factorial_loop(x: Int, accumulator: Int) -> Int {
  case x {
    1 -> accumulator

    // The last thing this function does is call itself
    _ -> factorial_loop(x - 1, accumulator * x)
  }
}

Implementation

Gleam's toolchain is implemented in the Rust programming language.[26] The toolchain is a single native binary executable which contains the compiler, build tool, package manager, source code formatter, and language server.[citation needed] A WebAssembly binary containing the Gleam compiler is also available, enabling Gleam code to be compiled within a web browser.[27] This is used in Gleam's interactive language tour[28] and online playground.[29]

References

Related Articles

Wikiwand AI