You already program

A language with nothing up its sleeve.

Ascent is a small, honest teaching language — static types, real values, no hidden magic. It's built to get you moving fast and carry you smoothly up into the languages you'll actually ship. You already know how to code, so learn it the fast way: by running real code, right on the page.

Why Ascent

Start climbing

  1. Chapter 1Getting Oriented The one lens you'll use for everything else: nothing happens silently.3 screens
  2. Chapter 2Numbers & Math Overflow, NaN, and silent truncation: the bugs that no longer exist.5 screens
  3. Chapter 3Strings Always-on interpolation, and no more pretending indexing is free.4 screens
  4. Chapter 4Slots & Values fix and mut, and why nothing ever mutates in place.3 screens
  5. Chapter 5Control Flow No truthiness, no ternary — if and match hand back real values.6 screens
  6. Chapter 6Absence & Nothing One None instead of null-and-undefined, absence that lives in the type, and Done, void, ?? keeping nothing honest.6 screens
  7. Chapter 7Functions Functions are ordinary values, signatures are always spelled out, and closures snapshot their world instead of capturing live references.4 screens
  8. 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 →