основной тезис
Один язык.
Все уровни.
без лестницы уровней
без лестницы уровней
Каждая конструкция порождает код по документированному правилу, поэтому ассемблер предсказуем из исходника — без запуска компилятора.
Нет скрытых выделений памяти, скрытого потока управления и таблиц виртуальных методов — поведение следует из исходника, его манифеста и соглашений языка.
Операции проверяются по умолчанию; внутри области unchecked их поведение задаёт железо, а не то, что удобно компилятору.
Форма объявления одна — name : type = value. Типы, функции и обобщения — такие же значения, записанные так же, поэтому на каждом уровне не нужно учить новое.
name := valueобъявить и вывести тип из значенияfn(…) -> Tвыражение-значение, ровно как struct {…}pub · mut · comptimeтри модификатора на трёх ортогональных осях## объявление связывает имя с тем, ## во что вычисляется его правая часть Point := struct { x : u64, y : u64 } Meters := brand(u64) add := fn(a : u64, b : u64) -> u64 { a + b } Vec := fn(T : type) -> type { struct { ptr : ptr(T), len : usize } } comptime PI : f64 = 3.14159 mut count : u64 = 0