Gossamer обещает память без пауз и настоящие горутины — и компилируется через Rust

Двухмесячный язык предлагает синтаксис Rust, зелёные потоки в стиле Go и никаких пауз сборщика мусора. Тред оценил список желаний — и разобрал заявления по частям: eager refcounting пауз не исключает, а компилятор на Rust для «системного языка» говорит сам за себя.

Вкратце

Gossamer (v0.19.1) предлагает Result/Option, типизированные каналы на M:N-планировщике, никакого async/await и никакого borrow checker — память через детерминированный подсчёт ссылок плюс arena-регионы. Звучит как сборник лучшего из современного дизайна языков.

Разбор оказался конкретным: освобождение последней ссылки на объектный граф из 10 000 узлов — это стопор, а значит «без пауз» — маркетинг. И компилятор написан на Rust, что для самопровозглашённого системного языка красноречивее любых заявлений.

Язык-список желаний

Gossamer позиционирует себя как «системный язык в стиле Rust с настоящими горутинами и автоматической, беспаузной памятью». Список функций соблазнителен: Result/Option, исчерпывающий match, трейты и дженерики без null; настоящие горутины через go и типизированные каналы на M:N-планировщике без async, await и «окраски функций»; память через «детерминированный подсчёт ссылок в паре с arena { } регионами — никакого borrow checker, никаких lifetimes, никакого stop-the-world коллектора». Один из читателей написал, что это именно то, о чём мечтал: «Kotlin без Java-багажа... Rust с автоматическим управлением памятью... Go с современной системой типов».

«Без пауз» встречает граф из 10 000 узлов

Центральное заявление не пережило разговора с тем, кто знает теорию GC. Комментатор, разобравший модель памяти, был прямолинеен:

«У Gossamer есть cycle collector и eager reference counting. Удачи при освобождении последней ссылки в графе из 10 000 узлов, особенно если он циклический. Это означает, что памяти «без пауз» здесь нет.»

Суть его возражения: eager refcounting может намертво застрять при освобождении большого объектного графа, а в экосистеме уже существуют действительно беспаузные GC (ZGC и подобные), которые этот дизайн игнорирует, а не улучшает.

Компилятор как улика

Самая уничтожающая структурная критика — одно наблюдение о происхождении. Читатель назвал это красным флагом для всего, что претендует на звание системного языка: «компилятор не написан на самом языке. Компилятор написан на Rust. Системный язык должен уметь компилировать себя сам». Поверх этого детальный разбор migration guide зафиксировал: нет пользовательских макросов, нет unsafe, нет move-семантики — то есть «никакого низкоуровневого программирования», что делает формулу «системный язык в стиле Rust» натяжкой. Честный итог сформулировал читатель, которому язык всё равно понравился: языку «всего 2 месяца... явно написан на вайб-кодинге», и само существование такого инструмента уже удивительно — что само по себе говорит о направлении дизайна языков, даже если Gossamer туда не доберётся.

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

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

Следующая новость · 25 из 28 Читать дальше
🌍Other

Почему скорость вдвое — урон вчетверо? Тред из 2011-го объясняет лучше учебника

Кинетическая энергия растёт пропорционально квадрату скорости, и лучшее объяснение этому — не формула, а мысленный эксперимент с двумя тормозящими машинами. Удвоение скорости даёт два эффекта сразу: автомобиль едет быстрее и тормозит дольше. Оба перемножаются.

★ 110 · 💬 47 · physics.stackexchange.com · 2 мин