Zig и запрет AI: почему «contributor poker» важнее идеального кода

Zig и запрет AI: почему «contributor poker» важнее идеального кода

Есть мнение, что AI нужен разработчикам — пишет код быстрее, закрывает таски, экономит время. Всё так. Но один из крупнейших open source проектов — Zig — использует жёсткий аргумент против AI-ассистенции, и он не про качество кода. Он про то, зачем люди вообще вкладывают время в open source, и что происходит, когда этот вклад перестаёт быть человеческим.

Что запрещает Zig

Zig — язык системного программирования, позиционируемый как замена C, без скрытого рантайма и с ручным управлением памятью — имеет одну из самых строгих анти-LLM политик среди крупных проектов:

  • Никаких LLM для создания issue
  • Никаких LLM для pull requests
  • Никаких LLM для комментариев в баг-трекере, включая переводы

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

Эта политика существует не с самого начала. Zig прошёл путь от открытости к ужесточению, и это важно — значит, правила появились не из идеологии, а из практического опыта с сообществом. Проект видел, как LLM-ассистированные PRы начали появляться, и отреагировал явно, а не молча.

Bun, Anthropic и форк

Самый известный проект на Zig — Bun JavaScript-runtime, раннер для JS/TypeScript, TypeScript-транспайлер и менеджер пакетов в одном. В декабре 2025 года Bun был приобретён Anthropic. И, что предсказуемо, активно использует AI-ассистенцию в разработке — это часть того, почему Anthropic купили именно Bun.

Bun ведёт собственный форк Zig. Недавно команда добилась 4x ускорения компиляции после добавления параллельного семантического анализа и нескольких codegen-юнитов в llvm-бэкенд. Это серьёзное улучшение — время компиляции критично для JavaScript-разработчиков, которые запускают сборку десятки раз в день. На больших проектах это может означать экономию минут или даже часов ежедневно.

Но:

We do not currently plan to upstream this, as Zig has a strict ban on LLM-authored contributions.

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

Здесь интересный момент: сама команда Zig подтверждает, что патч технически ценен и что они бы рассмотрели его без LLM-контекста. Проблема именно в способе создания кода, а не в самом коде. Это не отклонение по техническим причинам — это отклонение по социальным.

«Contributor Poker»

Лорис Кро, VP Community в Zig Software Foundation, объясняет это в интервью под названием «Contributor Poker and Zig's AI Ban»:

In successful open source projects you eventually reach a point where you start getting more PRs than what you're capable of processing. Given what I mentioned so far, it would make sense to stop accepting imperfect PRs in order to maximize ROI from your work, but that's not what we do in the Zig project. Instead, we try our best to help new contributors to get their work in, even if they need some help getting there.

We don't do this just because it's the "right" thing to do, but also because it's the smart thing to do. Zig values contributors over their contributions.

Главное здесь — каждое слово про «ROI» и «smart». Zig Software Foundation — это не благотворительная организация. Это фонд, который должен показывать результат. но они явно говорят: принять готовый PR — не тот результат, который мы ищем. Результат — это рост человека.

Каждый контрибьютор — это инвестиция команды Zig. Когда вы отправляете PR, цель ревью — не слить код. Цель — вырастить нового участника, который через год станет доверенным и продуктивным членом сообщества, способным самостоятельно решать сложные задачи. PR — это точка входа в долгосрочные отношения.

LLM-ассистированный PR ломает эту модель полностью. LLM может написать идеальный PR с первого раза, без единой ошибки компиляции, с покрытием тестами и документацией. Но время, которое команда Zig тратит на его ревью, не создаёт нового разработчика. Код идеален — но никакого вклада в развитие сообщества через человека не происходит.

Аналогия с покером точная: в покере вы играете не карты, а человека напротив. В open source вы «играете» не PR, а контрибьютора. Принять идеальный PR от LLM — всё равно что выиграть раздачу, но при этом не узнать ничего о человеке за столом.

Как работает рост контрибьютора в Zig на практике

В традиционной модели, прежде чем ваш код попадёт в основную ветку, происходит несколько этапов.

Первый PR может быть небольшим — исправление опечатки, форматирование, документация. Это не потому, что Zig не хочет видеть большие изменения. Это потому, что первый PR — это знакомство. Команда смотрит: как человек пишет, как реагирует на замечания, насколько он готов учиться.

Если первый PR хороший, второй может быть чуть сложнее — новая функция, исправление бага. К этому моменту ревьюер уже знает стиль человека, его сильные стороны, его слепые пятна. Ревью становится более целенаправленным.

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

LLM-ассистированный PR не проходит этот путь. Он появляется сразу на уровне «идеальный код», минуя все промежуточные стадии. Команда получает хороший код, но не получает информации о человеке — потому что человек не учился, чтобы этот код написать.

Почему это важно для индустрии прямо сейчас

Bun/Anthropic — это не просто кейс «компания купила open source проект». Это модель, которую сейчас пытаются масштабировать повсеместно: AI-инженеры, AI-ассистенты для каждого разработчика, AI-парное программирование. Всё это даёт краткосрочный выигрыш в скорости.

Но open source — это не только код. Это сеть людей, которая поддерживает и развивает проект годами и десятилетиями. Linux существует с 1991. Python — с 1991. Git — с 2005. Эти проекты пережили смену технологий, компаний, поколений разработчиков — потому что вокруг них сложилось устойчивое сообщество людей.

Компании, которые приходят в open source с AI-ассистенцией, рискуют получить краткосрочную выгоду и долгосрочный ущерб для экосистемы: они берут ценность из сообщества, но не инвестируют обратно в людей. Zig явно говорит: мы не хотим быть площадкой, где AI генерирует код, а люди только потребляют результат.

Это не академический аргумент. Это вопрос устойчивости проектов через 10–20 лет. Если каждый крупный контрибьютор заменит людей на LLM, кто будет поддерживать проекты, когда компании уйдут? Кто будет писать документацию, отвечать на вопросы новичков, разбирать баги в 2 часа ночи — всё то, что делает сообщество живым?

Разбор аргументов обеих сторон

Симон Виллисон в оригинальной статье занимает любопытную позицию — он описывает политику Zig, но не осуждает Bun. Это важно, потому что у обеих сторон есть рациональные аргументы.

Bun нужна скорость. Конкуренция на рынке JavaScript-раннеров реальная: Node.js, Deno, Bun. AI-ассистенция позволяет закрывать задачи быстрее. Anthropic инвестировали в Bun реальные деньги и хотят ROI. С их позиции, форк и отсутствие upstream — это техническая деталь, а не этическая проблема. Ускорение компиляции в 4 раза — это конкурентное преимущество, которое помогает продавать продукт.

Zig нужна устойчивость. Проект существует за счёт комьюнити-инвестиций — времени разработчиков, которые отдают его бесплатно. Если каждый PR будет приходить от AI, а не от людей, сообщество начнёт сокращаться. Принять идеальный AI-PR — значит сделать шаг к замене людей алгоритмами.

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

Контекст из истории open source

Это не первый случай, когда крупный игрок форкает и не возвращает в upstream. MySQL -> Drizzle. PostgreSQL -> Greenplum. OpenOffice -> LibreOffice. Но разница в том, что во всех этих случаях код писали люди — просто другие люди, с другими приоритетами.

С LLM-ассистенцией появляется новый слой: код может писать алгоритм, а человек выступает в роли редактора и ревьюера. С одной стороны, это эффективно. С другой — это не то же самое, что человек, который пришёл в проект, чтобы научиться и вырасти.

Zig работает с этим фундаментально: они вкладываются в людей как будущих лидеров проекта. Если человек пришёл с LLM и получил идеальный PR, он не вырос — он потребил услугу. Если человек пришёл без LLM и написал свой первый PR, пусть с ошибками, — он инвестировал в себя.

Это не значит, что LLM-ассистенция плохая. Это значит, что у неё есть социальная цена, которую не всегда видно в метриках.

Как это отражается на вас как разработчика

Если вы работаете в компании, которая активно использует AI-ассистенцию, и при этом ваша компания контрибьютит в open source — вы уже находитесь в зоне конфликта интересов. Ваш вклад может быть качественным, но он не помогает сообществу расти.

Если вы индивидуальный разработчик, который хочет вкладываться в open source — Zig даёт чёткий сигнал: начинайте с малого, учитесь, растте. Сообщество поддержит. AI-ассистенция в будущем может быть разрешена, но только если вы уже показали, что способны вносить вклад без неё.

Если вы думаете о своём собственном проекте — подумайте, что вы хотите построить: технологию или сообщество. Это разные цели, и они требуют разных стратегий.

Если вы наймодатель — задумайтесь: когда вы нанимаете AI-инженеров, что происходит с их навыками через год? Они растут как разработчики или становятся продвинутыми промпт-инженерами? Это не риторический вопрос — это вопрос устойчивости вашей команды.

Почему это не элитизм

Часто можно услышать: «Zig — это элитизм, они не хотят, чтобы люди пользовались их проектом». Это не так, и вот почему.

Zig явно говорит: мы хотим помогать начинающим. Мы хотим, чтобы люди приходили и учились. Мы готовы тратить время на ревью даже плохих PR — потому что это инвестиция в человека.

LLM — не человек. LLM не учится в процессе. LLM не станет через год senior-разработчиком, который самостоятельно решает сложные задачи. LLM — это инструмент, который можно использовать по-разному. И Zig говорит: не здесь, не в нашем процессе.

Это не элитизм. Это различие между инвестицией в человека и потреблением услуги.

FAQ

Разве LLM-ассистированный PR не может быть качественным? Может. Часто он объективно лучше написан, чем PR от начинающего разработчика — меньше ошибок, чище стиль, полнее документация. Проблема не в качестве кода, а в отсутствии роста контрибьютора. Приняв идеальный LLM-PR, Zig не получит через год нового опытного разработчика. PR — это точка, контрибьютор — это линия.

Это не элитизм? Не подход «мы лучше знаем, как вам писать код»? Наоборот — Zig явно говорит, что хочет помогать начинающим, а не отсекать их. Политика направлена против AI-ассистенции, а не против новичков. Новичок учится и растёт. LLM — нет. Помочь человеку написать его первый PR — это инвестиция. Принять готовый LLM-PR — это потребление.

Почему именно сейчас это стало важным? Bun fork + 4x ускорение — это конкретный, измеримый пример. AI-команда хочет contributed обратно, но не может из-за правил. Это делает дебат не абстрактным, а практическим. Не «стоило ли нам использовать AI», а «что делать с результатом, когда AI уже использовали».

Компании вообще обязаны contributed в upstream? Юридически — нет. Лицензия MIT, под которой распространяется Zig, не требует возврата изменений. Но сообщество ожидает, что крупные игроки будут участвовать. Bun использует Zig, строит на нём бизнес, и при этом не может вернуть изменения — это создаёт дисбаланс, который Zig явно хочет обозначить.

Разве AI не может помочь начинающим учиться быстрее? Может, и это используется во многих проектах. Но в модели Zig вопрос не в том, помогает ли AI учиться — а в том, входит ли AI-ассистированный контрибьютор в процесс community building. Если вы используете AI чтобы написать PR, вы не показали команде, что готовы вкладываться. Если вы пришли без AI и написали плохой PR, который команда помогла улучшить — вы показали готовность учиться.

Это не навредит конкурентоспособности Zig? Возможно. Если Bun с AI-ассистенцией развивается быстрее, Zig может отстать технологически. Но это цена, которую Zig готов платить — потому что без людей проект не выживет. Лучше медленный проект с живым сообществом, чем быстрый проект, который зависит от одной компании.

Итог

Zig выбрал модель, где люди важнее кода. Это не популярная позиция в 2026, когда все гонятся за AI-скоростью и productivity-метриками. Но в этом и ценность: open source — это не только про технологию, это про сообщество, которое стоит за ней десятилетиями.

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

Почитайте оригинальный текст Лориса Кро на Lobsters — там больше про то, как именно Zig работает с new contributors и почему «помочь закрыть PR» важнее, чем «принять идеальный PR». Это один из самых честных текстов о том, почему open source — это про людей.

← Все записи