Skip to content

Language ​

Norm is a statically and strongly typed language for application development. It retains familiar structures such as type-first declarations, braces, classes, interfaces, and exceptions, while making the semantics of sharing, value flow, and runtime behavior visible in declarations and calls.

Core design ​

text
class       identity
value       data
enum        alternatives
interface   capability
ref         controlled aliasing

These five constructs are not syntactic aliases for one object model. They define distinct boundaries for identity, mutability, finite states, nominal capabilities, and location references. Functions, generics, annotations, the standard library, and the toolchain compose within those boundaries.

Where to start ​

PurposeDocumentation
Learn the language step by stepLanguage Tour
Understand the design valuesLanguage philosophy
Evaluate whether a feature fits the languageDesign principles
Understand the language and runtime as a wholeLanguage design white paper
Compare specific dimensions with other languagesComparisons, tradeoffs, and direction
Look up precise compiler rulesLanguage Reference
Check implementation maturityStatus

This guide explains stable design intent without repeating tutorial steps or specification clauses. When the current release differs from the long-term specification, use Status and the corresponding version contract to determine availability.

Next: Language philosophy.

Norm 0.24 development line