| 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; 9 years ago (2016-06-13) |
| Stable release | 1.13.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 ageneral-purpose,concurrent,functional,high-levelprogramming language that compiles toErlang orJavaScript source code.[2][7][8]
Gleam is a statically-typed language,[9] which is different from the most popular languages that run on Erlang’s virtual machineBEAM,Erlang andElixir. Gleam has its own type-safe implementation of OTP, Erlang's actor framework.[10] Packages are provided using the Hexpackage manager, and an index for finding packages written for Gleam is available.[11]
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 platformExercism.[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]
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 BEAMvirtual 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]
Gleam includes the following features.[8][23]
A"Hello, World!" example:
importgleam/iopubfnmain(){io.println("hello, world!")}
Gleam supportstail call optimization:[24]
pubfnfactorial(x:Int)->Int{// The public function calls the private tail recursive functionfactorial_loop(x,1)}fnfactorial_loop(x:Int,accumulator:Int)->Int{casex{1->accumulator// The last thing this function does is call itself_->factorial_loop(x-1,accumulator*x)}}
Gleam's toolchain is implemented in theRust programming language.[25] The toolchain is a single native binary executable which contains the compiler, build tool, package manager, source code formatter, andlanguage server.[citation needed] AWebAssembly binary containing the Gleam compiler is also available, enabling Gleam code to be compiled within aweb browser.[citation needed]
Thisprogramming-language-related article is astub. You can help Wikipedia byexpanding it. |