If so, where/how and what do you like about it?
Created by @lpil
Why Gleam?
Safe
Gleam’s powerful static type system helps find and prevent bugs at compile time, long before it reaches your users. It also serves as a productive refactoring tool, enabling programmers to confidently make large changes to unfamiliar code, quickly and with low risk.
For problems the type system can’t solve (such as your server being hit by a bolt of lightning) the Erlang virtual machine provides well tested mechanisms for gracefully handling failure.
Friendly
Hunting down bugs can be stressful so Gleam’s compiler provides clear and helpful feedback about any problems. We want to spend more time developing features and less time looking for bugs 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. See our community code of conduct for more.
Performant
Gleam builds on top of the Erlang virtual machine, a best-in-class runtime that has enabled companies such as Discord, Ericsson, Heroku, and WhatsApp to provide low-latency services at a global scale. Gleam takes full advantage of the Erlang runtime and adds no overhead of its own, so all Gleam programs are as fast and as efficiently multi-threaded as their Erlang counterpart.
Erlang compatible
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 thousands of open source libraries for Gleam users to make use of.
In return Gleam code can be easily used by programmers of other BEAM languages, either by transparently making use of libraries written in Gleam, or by adding Gleam modules to their existing project with minimal fuss.
Features
- Actor based multi-core concurrency
- Algebraic data types
- Erlang style fault tolerance
- Fast compilation
- Full type inference
- Generics
- Helpful error messages
- Immutable data structures
- No exceptions by default
- No null
- No undefined behaviour
- Reliable package management
- Small and consistent language design
- Zero cost interop with Erlang, Elixir, etc