Aera logo

Aera

Where ideas take shape. An expression-oriented programming language centered around clarity and simplicity.

The language

Built around one idea

Aera is an expression-oriented language with one goal: code should just feel right. No hidden state, no guessing. Clean syntax, immutable state, static typing. Everything made explicit.

Read the vision
Expression-oriented

Everything is an expression. Code evaluates to values, including control flow.

Algebraic effects

Effects separate what your code does from how it's handled, and are resumable.

Effect system

Side effects are tracked by the language and must be handled explicitly.

Transparent by design

Behaviour is visible, not hidden. What you see is what you get.

An example

Describe your data.
Let matching do the rest.

In Aera, a variant lets you model every possible value in a single type. Constructors let each possibility carry its own data. The match expression handles each case directly. This makes code easier to read, safer to write, and harder to get wrong.

shapes.aera
# a simple example variant Shape {    Circle(r)    Rectangle(w, h)} fn area(s) {    match s {       Circle(r) => 3.14 * (r * r)       Rectangle(w, h) => w * h    }}