О Топазе

Философия языка

Принципы Топаза: единообразный синтаксис, явные эффекты, Unicode и переносимое поведение.

Топаз рассматривает программу как исполняемое выражение намерения: достаточно понятное для проверки человеком и достаточно точное для выполнения. Цель языка — не количество синтаксических вариантов, а прямой и единообразный код.

Одна понятная форма

Для обычной задачи предусмотрена одна предпочтительная форма. Имена предметной области можно писать в Unicode, эффекты и ошибки остаются видимыми, а незавершённые идеи не попадают в примеры. Поэтому код человека и код генератора читаются одинаково.

Предсказуемое выполнение

Если выбранная цель поддерживает программу, один и тот же исходный код должен сохранять видимое поведение при непосредственном выполнении, сборке в нативную программу и генерации Python. Текущая SPEC определяет значения, порядок, ошибки и очистку ресурсов, но не навязывает внутреннее устройство реализации. Цель, которая не может сохранить обязательное поведение, должна явно отклонить программу.

Несколько полезных форматов вывода

Форматы Rust, Python и Web решают разные задачи поставки, не создавая отдельных диалектов Топаза. После проверки программа направляется только в поддерживающую её цель. Неподдерживаемая форма отклоняется, а не получает особый смысл; различия между целями, принявшими один исходный код, считаются ошибками компилятора.

Малая поверхность, глубокая политика

Сосредоточенная грамматика и стандартная библиотека дают читателям, инструментам и реализациям одну цель. Новая возможность считается готовой, когда определено её поведение, работают реализации и опубликованы примеры с документацией.

Развитие на основе реальных программ

Поддерживаемые приложения показывают, каких операций со строками, числами, коллекциями, файлами, пакетами и диагностикой не хватает. Ограниченная интеграция LIT и Lispex также проверяет рекурсию, переносимые значения, состояние, вывод и ошибки. Свидетельства реальных продуктов задают приоритеты, но не оправдывают разовый синтаксис.

Понятный статус

Документация отделяет возможности текущего выпуска от будущих планов. Ограничения указываются там, где они важны пользователю, без публикации внутренних деталей разработки.

Связанная документация