A high-level, procedural, compiled and garbage-collected programming language without type annotations.

Gera is a language that attempts to be simple while still being nice to use.

The language is statically typed, meaning type errors are found during compilation of the program. It also has full type inference, meaning that type annotations are not even a part of the language syntax.

Instead of null values and exceptions, Gera uses tagged unions. Tagged unions are a way to represent "one of multiple possible types of values", meaning they can be used to represent optional values, result values and whatever else you can come up with.

Loops don't exist either. Instead, iterators are used. Iterators are simply sequences of values, such as the items in an array or the numbers in the Fibonacci sequence. The standard library provides a plethora of operations that can be used with iterators, such as filtering items out, converting each item to another, reducing the sequence to a single value and much more.

Learn more about the Gera programming language. Read the documentation for the standard library. Visit Gera on Github. Join the Gera Discord server.