Goose — системный язык без кучи, и его автор пришёл отвечать на вопросы

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

Вкратце

В репозитории заявлено примерно 3,5-кратное превосходство над идиоматичным C++ и 1,1-кратное над лучшим безопасным Rust на 16 собственных бенчмарках. В README реализацию компилятора, бенчмарки и документацию приписывают ИИ-модели.

Язык без кучи

Goose — безопасный по памяти системный язык с синтаксисом в духе C. Память освобождается, когда заканчивается её область видимости. Ссылки на растущий массив остаются действительными: компилятор выводит, к чему привязана каждая ссылка, и отклоняет те, что могут пережить своих владельцев, а результатом выступает один файл на C. В репозитории сообщается о среднем геометрическом примерно 3,5-кратном превосходстве над идиоматичным C++ и 1,1-кратном над лучшим безопасным Rust, а пиковая память меньше примерно в 1,9 раза, по 16 собственным бенчмаркам. Задокументированные издержки: нет замыканий и указателей на функции, а массивы переменного размера можно перебирать, но не индексировать. Компилятор всей программы — примерно 30 000 строк на C++, лицензия Apache 2.0.

Автор отвечает

Аардаппел, который, по его словам, и создал язык, открыл ветку AMA. Первый острый вопрос касался JSON.

«Как память под JSON выделяется на стеке? Он может быть от 1К до 1М, в зависимости от файла...» — pulse7

Михаил Малис, соавтор pgrust, спросил, как хеш-таблица со случайно вставляемыми и удаляемыми строками будет работать при фиксированном числе стеков. А затем вопрос классификации:

«Это язык, в первую очередь ориентированный на производительность или на безопасность? Если первое, он занимает ту же тесную нишу, что C++ и его многочисленные родственники, и там ему будет трудно» — weinzierl, программист на Rust

Заявления принадлежат автору, а ветка показала, что вопрос о структурах данных ещё открыт, поэтому относитесь к соотношениям бенчмарков как к гипотезам, пока кто-нибудь не перенесёт нагрузку с динамическими ключами.

Получайте такие разборы каждый день

Главные истории Hacker News — на email, в Telegram или RSS.

Это последняя новость выпуска 25 октября 2026.

Перейти в архив выпусков