Пишешь на Zig? Отлично. Теперь перепиши всё. Async возвращается, и ему плевать на твой старый код
NewsMakerReader мёртв. Writer — тоже. Что же делать теперь?
Язык программирования Zig переживает самую глубокую трансформацию за всё время существования. Его автор и главный разработчик, Эндрю Келли, внедрил изменения, полностью перерабатывающие ключевые компоненты стандартной библиотеки —
Новая архитектура представлена в пулл-реквесте с ироничным названием Writergate. Она делает устаревшими все текущие реализации чтения и записи и вводит новые структуры без дженериков. Reader и Writer становятся ядром свежей системы ввода-вывода: более гибкой, переиспользуемой и пригодной для масштабирования.
Келли не скрывает: изменения радикальные. Любой проект, работающий со старыми потоками I/O, нужно будет переписать. Но он подчёркивает — решение обдуманное, а направление развития продиктовано архитектурной логикой .
Несмотря на статус pre-release (последняя версия Zig — 0.14.1), язык уже применяют в продакшене. Самый заметный пример — рантайм Bun, в основе которого работает Zig. Поэтому Writergate и вызвал бурную реакцию в сообществе.
И это — только начало. Следом команда перепишет модули TLS, HTTP, JSON и библиотеки сжатия. Все они перейдут на новую модель ввода-вывода и откажутся от устаревших API. Чтобы облегчить переход, каждый этап будет оформлен отдельным пулл-реквестом.
Возврат
В недавнем выступлении Келли признался: первый заход в асинхронность его не устроил. Но теперь подход изменился — интерфейсы I/O создают нужный фундамент, на котором можно строить поддержку современных сценариев.
Среди преимуществ новой системы — чёткий контроль за ресурсами, лёгкость тестирования и независимость от конкретных ОС. Разработчик сможет создавать пакеты, которые будут работать в любой среде, где реализован нужный интерфейс. Даже для самописной ОС.
Самая болезненная часть — миграция. Всё, что взаимодействует с Reader и Writer, придётся переписать вручную. Келли честно говорит: «Это тяжело. Мне жаль. Но иначе — никак».
Сообщество отреагировало по-разному. Кто-то считает, что Zig наконец получает полноценный переиспользуемый I/O-интерфейс. Другие выражают тревогу: язык уже используется в продакшене, и такие перемены бьют по стабильности. Один из комментаторов прямо спросил: «Zig будто застрял в вечной бете. Где 1.0?»
Келли в ответе на Hacker News упомянул опыт языка Hare. Особенно — инструмент
Всё это ясно говорит: язык вступает в новую эру. Разработчики сознательно отказываются от старых компромиссов и закладывают архитектурный фундамент , способный выдерживать нагрузки будущего. Цена — полная переработка кода. Но большой босс уверен: без этого Zig не станет тем, чем должен быть. Это — часть большой задачи по обеспечению безопасности кода и качественной разработке в современном мире.

Язык программирования Zig переживает самую глубокую трансформацию за всё время существования. Его автор и главный разработчик, Эндрю Келли, внедрил изменения, полностью перерабатывающие ключевые компоненты стандартной библиотеки —
std.io.Reader
и std.io.Writer
. Эти шаги прокладывают путь к возвращению в язык асинхронности — через ключевые слова async
и await
, которые ранее были удалены. Новая архитектура представлена в пулл-реквесте с ироничным названием Writergate. Она делает устаревшими все текущие реализации чтения и записи и вводит новые структуры без дженериков. Reader и Writer становятся ядром свежей системы ввода-вывода: более гибкой, переиспользуемой и пригодной для масштабирования.
Келли не скрывает: изменения радикальные. Любой проект, работающий со старыми потоками I/O, нужно будет переписать. Но он подчёркивает — решение обдуманное, а направление развития продиктовано архитектурной логикой .
Несмотря на статус pre-release (последняя версия Zig — 0.14.1), язык уже применяют в продакшене. Самый заметный пример — рантайм Bun, в основе которого работает Zig. Поэтому Writergate и вызвал бурную реакцию в сообществе.
И это — только начало. Следом команда перепишет модули TLS, HTTP, JSON и библиотеки сжатия. Все они перейдут на новую модель ввода-вывода и откажутся от устаревших API. Чтобы облегчить переход, каждый этап будет оформлен отдельным пулл-реквестом.
Возврат
async
, await
, suspend
и resume
стал главной целью изменений. Раньше они уже появлялись в компиляторе , но Келли решил их удалить из-за сырой реализации. Сейчас, благодаря новой I/O-архитектуре, он считает, что время вернулось. В недавнем выступлении Келли признался: первый заход в асинхронность его не устроил. Но теперь подход изменился — интерфейсы I/O создают нужный фундамент, на котором можно строить поддержку современных сценариев.
Среди преимуществ новой системы — чёткий контроль за ресурсами, лёгкость тестирования и независимость от конкретных ОС. Разработчик сможет создавать пакеты, которые будут работать в любой среде, где реализован нужный интерфейс. Даже для самописной ОС.
Самая болезненная часть — миграция. Всё, что взаимодействует с Reader и Writer, придётся переписать вручную. Келли честно говорит: «Это тяжело. Мне жаль. Но иначе — никак».
Сообщество отреагировало по-разному. Кто-то считает, что Zig наконец получает полноценный переиспользуемый I/O-интерфейс. Другие выражают тревогу: язык уже используется в продакшене, и такие перемены бьют по стабильности. Один из комментаторов прямо спросил: «Zig будто застрял в вечной бете. Где 1.0?»
Келли в ответе на Hacker News упомянул опыт языка Hare. Особенно — инструмент
hare-update
, который помогает адаптировать код под несовместимые изменения. По его мнению, Zig тоже стоит пойти по этому пути. Всё это ясно говорит: язык вступает в новую эру. Разработчики сознательно отказываются от старых компромиссов и закладывают архитектурный фундамент , способный выдерживать нагрузки будущего. Цена — полная переработка кода. Но большой босс уверен: без этого Zig не станет тем, чем должен быть. Это — часть большой задачи по обеспечению безопасности кода и качественной разработке в современном мире.