Aera
Where ideas take shape. An expression-oriented programming language centered around clarity and simplicity.
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 visionEverything is an expression. Code evaluates to values, including control flow.
Effects separate what your code does from how it's handled, and are resumable.
Side effects are tracked by the language and must be handled explicitly.
Behaviour is visible, not hidden. What you see is what you get.
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.
# 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 }}