Введение
Изучай язык gof по правильной модели мышления, а не по догадкам.
Книга gof
Изучай язык по правильной модели мышления, а не по догадкам.
gof стремится к читаемости Python, concurrency-модели уровня Go и
инженерной строгости Rust. Важен не сам слоган, а то, что язык проектируется
так, чтобы оставаться оптимизируемым, явным и нормально обучаемым с самого начала.
Читаемо
низкая церемониальность, синтаксис на отступах
Явно
типовые контракты, видимая мутабельность, честный control flow
Параллельно
go, await, каналы и select
Честно
bootstrap-ограничения так и называются
Быстрый старт
Установка, первый запуск и минимальный рабочий цикл.
Обзор языка
Сначала пойми модель, потом заучивай синтаксис.
Многопоточность
Текущий baseline задач, каналов и select.
Главное правило: книга объясняет, spec фиксирует, examples доказывают, что реально работает сегодня.
Каким gof пытается быть
gof не пытается повторять внутренности Python. Он пытается сохранить плюсы
читаемости Python, но при этом оставить путь к нативной производительности,
предсказуемой многопоточности и долгосрочно поддерживаемой архитектуре.
Отсюда главный принцип:
Если "похоже на Python" конфликтует с safety, оптимизируемостью или ясной семантикой,
gofвыбирает ясную семантику.
Для чего эта книга
Это основной путь обучения gof.
Используй ее, если тебе нужны:
- объяснение текущего языка человеческим языком
- примеры, которые совпадают с реальной реализацией
- правильная картина того, что уже есть, а что еще bootstrap
Для чего эта книга не предназначена
Это не формальная спецификация языка. Для точных правил смотри:
spec/language-v1.mdspec/diagnostics.mdrfcs/
Книга учит. Спецификация определяет контракт. Примеры держат их в честном состоянии.
Как правильно учить gof
Не учи gof как набор ключевых слов.
Учить надо в таком порядке:
- что означают значения и биндинги
- какие типовые контракты уже реальны
- как устроен control flow
- как моделируются данные
- как сегодня ведут себя задачи, каналы и
select - что реально делает toolchain
Что реально есть уже сейчас
Сейчас в репозитории уже есть:
- функции и явные return contracts
- локальные импорты по соседним файлам и manifest-resolved local packages с детерминированным lockfile
structenum- исчерпывающий
match - методы
- списки и словари
assert- файловый I/O
go/await- каналы и
select gof build --native
Но часть этого все еще bootstrap-уровня:
- native build пока оборачивает bootstrap evaluator
- stdlib намеренно маленькая
- package system пока ограничена локальными пакетами без registry и solver
- concurrency semantics еще не production-grade
Чего не надо предполагать
Не надо автоматически думать, что в gof уже есть:
- совместимость с Python
- зрелая package ecosystem
- финальная семантика каналов
- direct native code generation
- большая стандартная библиотека
Книга будет всегда предпочитать точное "еще нет" красивому, но ложному "почти уже да".