Gleam is a statically typed functional programming language for building scalable concurrent systems. It compiles to Erlang and has straightforward interoperability with other BEAM languages such as Erlang, Elixir, and LFE.
Elevate your Gleam skills through 127 curated exercises across 30 core concepts. Master problem-solving with a structured learning path designed for modern developers.
Gleam is designed with the following principles in mind:
An expressive type system inspired by the ML family of languages helps us find and prevent bugs at compile time, long before it reaches your users.
For the problems the type system can't solve (such as your server being hit by a bolt of lightning) the Erlang/OTP runtime provides well tested mechanisms for gracefully handling failure.
Hunting down bugs can be stressful so feedback from the compiler should be as clear and helpful as possible. We want to spend more time working on our application and less time looking for typos or deciphering cryptic error messages.
As a community we want to be friendly too. People of all backgrounds, genders, and experience levels are welcome and must receive equal respect.
The Erlang/OTP runtime is known for its speed and ability to scale, enabling organisations such as WhatsApp and Ericsson to reliably handle massive amounts of traffic at low latency. Gleam should take full advantage of this runtime and be as fast as other BEAM languages such as Erlang and Elixir.
Gleam makes it easy to use code written in other BEAM languages such as Erlang, Elixir and LFE, so there's a rich ecosystem of tools and library for Gleam users to make use of.
Users of other BEAM languages should in return be able to take advantage of Gleam, either by transparently making use of libraries written in Gleam, or by adding Gleam modules to their existing project with minimal fuss.
Safe
Gleam's powerful static type system helps find and prevent bugs at compile time.
Fault tolerant
The Erlang virtual machine provides well tested mechanisms for gracefully handling failure.
Friendly compiler
Hunting down bugs can be stressful so Gleam's compiler provides clear and helpful feedback.
Friendly community
People of all backgrounds, genders, and experience levels are welcome in the Gleam community.
Erlang compatible
Gleam makes it easy to use code written in other BEAM languages such as Erlang, Elixir and LFE.
Performant
Gleam adds no overhead of its own, so all Gleam programs are as fast as their Erlang counterparts.
Safe
Gleam's powerful static type system helps find and prevent bugs at compile time.
Fault tolerant
The Erlang virtual machine provides well tested mechanisms for gracefully handling failure.
Friendly compiler
Hunting down bugs can be stressful so Gleam's compiler provides clear and helpful feedback.
Friendly community
People of all backgrounds, genders, and experience levels are welcome in the Gleam community.
Erlang compatible
Gleam makes it easy to use code written in other BEAM languages such as Erlang, Elixir and LFE.
Performant
Gleam adds no overhead of its own, so all Gleam programs are as fast as their Erlang counterparts.