Why Ascent
- Honesty over magic No truthiness, no silent overflow, no two kinds of nothing. If something happens, it's visible in the code and the result.
- Footguns caged at the source Every value is a real value — no NaN, no wild null. The dangerous thing is made impossible or made explicit, never just documented.
- Errors are the product Compiler and runtime messages are written as plain explanations that name the things you actually wrote.
- Built to transfer Mainstream syntax, clean semantics. Ascent carries you up into the languages you'll ship in — every divergence is a deliberate graduation lesson.
Start climbing
- Chapter 1Getting Oriented The one lens you'll use for everything else: nothing happens silently.3 screens
- Chapter 2Numbers & Math Overflow, NaN, and silent truncation: the bugs that no longer exist.5 screens
- Chapter 3Strings Always-on interpolation, and no more pretending indexing is free.4 screens
- Chapter 4Slots & Values fix and mut, and why nothing ever mutates in place.3 screens
- Chapter 5Control Flow No truthiness, no ternary — if and match hand back real values.6 screens
- Chapter 6Absence & Nothing One None instead of null-and-undefined, absence that lives in the type, and Done, void, ?? keeping nothing honest.6 screens
- Chapter 7Functions Functions are ordinary values, signatures are always spelled out, and closures snapshot their world instead of capturing live references.4 screens
- Chapter 8Types & Data One keyword — type — builds records, enums, and unions; construct by name, read with a dot or match, and update with with, never in place.7 screens
Early draft
The language is still moving.
Ascent and these screens change often. If a screen breaks, a message confuses you, or something just feels wrong — tell me. That feedback is what shapes the language.
Send feedback →