Gleam is a general-purpose, concurrent, functional high-level programming language that compiles to Erlang or JavaScript source code.[2][7][8]
Gleam | |
---|---|
![]() Lucy, the starfish mascot for Gleam[1] | |
Paradigm | Multi-paradigm: functional, concurrent[2] |
Designed by | Louis Pilfold |
Developer | Louis Pilfold |
First appeared | June 13, 2016 |
Stable release | 1.12.0[3] ![]() |
Typing discipline | Type-safe, static, inferred[2] |
Memory management | Garbage collected |
Implementation language | Rust |
OS | FreeBSD, Linux, macOS, OpenBSD, Windows[4] |
License | Apache License 2.0[5] |
Filename extensions | .gleam |
Website | gleam |
Influenced by | |
[6] |
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
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.[citation needed] The developer behind Nestful described their motivations for rewriting the project in Gleam as driven by its clarity and ease of use.[21] There is a community-maintained list of companies using Gleam in production.[22]
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][23]
- Result type for error handling
- Immutable objects
- Algebraic data types
- Pattern matching
- No null pointers
- No implicit type conversions
Example
A "Hello, World!" example:
import gleam/io
pub fn main() {
io.println("hello, world!")
}
Gleam supports tail call optimization:[24]
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.[25] 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.[citation needed]
References
- ^ "gleam-lang/gleam Issues – New logo and mascot #2551". GitHub.
- ^ a b c "Gleam Homepage". 2024.
- ^ "Release 1.12.0". August 5, 2025. Retrieved August 14, 2025.
- ^ "Installing Gleam". 2024.
- ^ "Gleam License File". GitHub. December 5, 2021.
- ^ Pilfold, Louis (February 7, 2024). "Gleam: Past, Present, Future!". Fosdem 2024 – via YouTube.
- ^ Krill, Paul (March 5, 2024). "Gleam language available in first stable release". InfoWorld. Retrieved March 26, 2024.
- ^ a b Eastman, David (June 22, 2024). "Introduction to Gleam, a New Functional Programming Language". The New Stack. Retrieved July 29, 2024.
- ^ De Simone, Sergio (March 16, 2024). "Erlang-Runtime Statically-Typed Functional Language Gleam Reaches 1.0". InfoQ. Retrieved March 26, 2024.
- ^ Getting to know Actors in Gleam – Raúl Chouza. Code BEAM America. March 27, 2024. Retrieved May 6, 2024 – via YouTube.
- ^ "Introducing the Gleam package index – Gleam". gleam.run. Retrieved May 7, 2024.
- ^ "Hello, Gleam! – Gleam". gleam.run. Retrieved May 6, 2024.
- ^ "v0.16 – Gleam compiles to JavaScript! – Gleam". gleam.run. Retrieved May 7, 2024.
- ^ Alistair, Woodman (December 2023). "Erlang Ecosystem Foundation Annual General Meeting 2023 Chair's Report".
- ^ "Gleam version 1 – Gleam". gleam.run. Retrieved May 7, 2024.
- ^ "Thoughtworks Technology Radar, Gleam". 2025.
- ^ a b c "Technology | 2025 Stack Overflow Developer Survey". survey.stackoverflow.co. Retrieved August 9, 2025.
- ^ Why Gleam Is Good
- ^ a b c Pilfold, Louis. "Developer Survey 2024 Results". gleam.run. Retrieved August 9, 2025.
- ^ Code Sync (October 28, 2024). Keynote: Gleam's Journey on the BEAM - Hayleigh Thompson & Louis Pilfold | Code BEAM Europe 2024. Retrieved August 9, 2025 – via YouTube.
- ^ Nestful. "Why I Rewrote Nestful in Gleam". blog.nestful.app. Retrieved August 9, 2025.
- ^ Harris-Holt, Isaac (July 31, 2025), isaacharrisholt/gleam-in-production, retrieved August 9, 2025
- ^ Sharma, Gaurav (June 25, 2024). "Meet GLEAM: A new programming language for developers".
- ^ "Tail Calls". The Gleam Language Tour. Retrieved March 26, 2024.
- ^ "gleam-lang/gleam". Gleam. May 6, 2024. Retrieved May 6, 2024.