Никакого ИИ, прощай GitHub, а версия 1.0 подождет. Создатель Zig объяснил, почему отказался от трендов разработки
NewsMakerЭндрю Келли рассказал, куда на самом деле спешит Zig.
Создатель Zig Эндрю Келли снова показал, почему вокруг небольшого языка программирования столько споров. Проект пытается сохранить скорость и низкоуровневые возможности C, но убрать часть опасных ошибок, из-за которых разработчики неделями ловят повреждение памяти. Заодно команда Zig жёстко отказывается от кода, написанного ИИ, уходит с GitHub при проблемах с инфраструктурой и не спешит выпускать версию 1.0.
Келли, создатель и бессменный руководитель Zig, дал интервью Виталию Брагилевскому, руководителю Rust-экосистемы в JetBrains. Разговор затронул выбор языков программирования, надёжность GitHub, роль ИИ в разработке и причины, по которым Zig остаётся нишевым, но заметным проектом.
Zig задумывался как универсальный язык с производительностью уровня C, но с меньшим числом опасных ловушек для программиста. В рейтинге RedMonk Programming Language Rankings язык занимает 82-е место, однако среди пользователей Zig пользуется заметной поддержкой. В прошлогоднем опросе Stack Overflow Zig оказался на четвёртом месте среди языков, с которыми разработчики хотят продолжать работать.
Келли рассказал, что начал путь к Zig не с абстрактной идеи создать новый язык, а с попытки написать цифровую звуковую рабочую станцию. Go не подошёл из-за сложной интеграции с библиотеками C и задержек, связанных со сборщиком мусора. C++ тоже не решил проблему: даже при стиле программирования, близком к C, небольшие ошибки приводили к повреждению памяти, а исправление багов занимало недели. Rust оказался слишком трудным для нужной задачи, и Келли потратил месяц на попытку заставить работать отрисовку шрифтов по правилам компилятора.
После нескольких неудачных подходов Келли решил пойти другим путём и создать новый язык. По замыслу автора, Zig не отказывается от возможностей C, но исправляет слабые места, которые часто делают разработку на C опасной и слишком дорогой по времени. Сам проект цифровой звуковой станции, ради которого началась работа, судя по репозиторию , пока остаётся на ранней стадии.
Особенно жёсткую позицию команда Zig занимает по отношению к ИИ. В кодексе поведения проекта закреплена политика без ИИ-вкладов. Келли объяснил запрет тем, что такие изменения почти всегда требуют лишнего времени на ревью, а команда предпочитает тратить силы на людей, которых можно обучать и постепенно вовлекать в развитие проекта.
Келли видит ещё одну проблему в недетерминированности ИИ-инструментов. Даже простое переименование функции после работы генератора кода нужно перепроверять, потому что результат нельзя предсказать с полной уверенностью. Для Келли надёжнее выглядят обычные инструменты, результат которых разработчик может проверить и воспроизвести.
К вайб-кодингу, то есть почти полному делегированию написания кода ИИ, Келли относится без восторга. Разработчик не хочет зависеть от технологии, которую контролируют четыре компании, и считает странной идею отказаться от собственного компьютера ради закрытого программирования на чужих серверах по подписке. Келли также не принимает аргумент, что ИИ-код работает неожиданно хорошо: для системного программирования, по мнению автора Zig, планка должна быть гораздо выше.
Перфекционизм Келли заметен и по темпам развития Zig. После 11 лет работы язык дошёл до версии 0.16, а новые релизы иногда содержат крупные изменения, ломающие совместимость. Келли считает, что версия 1.0 должна стать настоящим обещанием обратной совместимости, поэтому до финального релиза команда продолжит менять язык без этого ограничения. Цель проекта звучит амбициозно: создать язык, который сможет прожить следующие 50 лет.
Отдельно Келли объяснил переезд Zig с GitHub на Codeberg . По словам разработчика, GitHub просто перестал работать для команды: если сервер непрерывной интеграции не справляется, проекту нужен другой сервис. Codeberg оказался удобной заменой, потому что по интерфейсу и подходу близок к GitHub, а немецкая некоммерческая модель кажется Келли более стабильной, чем стартапы и крупные корпорации. Сам Zig финансирует Zig Software Foundation, американская некоммерческая организация со статусом 501(c)(3).
Среди спорных решений Zig остаётся курс на отказ от зависимости от LLVM, Clang и LLD как библиотек внутри проекта, хотя компилятор Clang сохранится. Решение приняли ещё три года назад, а Келли объясняет подход просто: ядро продукта не должно зависеть от внешней технологии, если проект способен заменить такую часть собственной реализацией.
JetBrains в интервью не получил публичной поддержки своих инструментов. Келли сказал, что никогда не пользовался продуктами JetBrains из-за закрытого исходного кода. Для разработки создатель Zig использует терминал и Vim.
Когда выйдет Zig 1.0, интервью не прояснило. В заметках к релизу сказано только, что цикл 0.17.0 будет коротким. Для проекта, который обещает язык на десятилетия, даже короткий цикл не означает спешки.
Создатель Zig Эндрю Келли снова показал, почему вокруг небольшого языка программирования столько споров. Проект пытается сохранить скорость и низкоуровневые возможности C, но убрать часть опасных ошибок, из-за которых разработчики неделями ловят повреждение памяти. Заодно команда Zig жёстко отказывается от кода, написанного ИИ, уходит с GitHub при проблемах с инфраструктурой и не спешит выпускать версию 1.0.
Келли, создатель и бессменный руководитель Zig, дал интервью Виталию Брагилевскому, руководителю Rust-экосистемы в JetBrains. Разговор затронул выбор языков программирования, надёжность GitHub, роль ИИ в разработке и причины, по которым Zig остаётся нишевым, но заметным проектом.
Zig задумывался как универсальный язык с производительностью уровня C, но с меньшим числом опасных ловушек для программиста. В рейтинге RedMonk Programming Language Rankings язык занимает 82-е место, однако среди пользователей Zig пользуется заметной поддержкой. В прошлогоднем опросе Stack Overflow Zig оказался на четвёртом месте среди языков, с которыми разработчики хотят продолжать работать.
Келли рассказал, что начал путь к Zig не с абстрактной идеи создать новый язык, а с попытки написать цифровую звуковую рабочую станцию. Go не подошёл из-за сложной интеграции с библиотеками C и задержек, связанных со сборщиком мусора. C++ тоже не решил проблему: даже при стиле программирования, близком к C, небольшие ошибки приводили к повреждению памяти, а исправление багов занимало недели. Rust оказался слишком трудным для нужной задачи, и Келли потратил месяц на попытку заставить работать отрисовку шрифтов по правилам компилятора.
После нескольких неудачных подходов Келли решил пойти другим путём и создать новый язык. По замыслу автора, Zig не отказывается от возможностей C, но исправляет слабые места, которые часто делают разработку на C опасной и слишком дорогой по времени. Сам проект цифровой звуковой станции, ради которого началась работа, судя по репозиторию , пока остаётся на ранней стадии.
Особенно жёсткую позицию команда Zig занимает по отношению к ИИ. В кодексе поведения проекта закреплена политика без ИИ-вкладов. Келли объяснил запрет тем, что такие изменения почти всегда требуют лишнего времени на ревью, а команда предпочитает тратить силы на людей, которых можно обучать и постепенно вовлекать в развитие проекта.
Келли видит ещё одну проблему в недетерминированности ИИ-инструментов. Даже простое переименование функции после работы генератора кода нужно перепроверять, потому что результат нельзя предсказать с полной уверенностью. Для Келли надёжнее выглядят обычные инструменты, результат которых разработчик может проверить и воспроизвести.
К вайб-кодингу, то есть почти полному делегированию написания кода ИИ, Келли относится без восторга. Разработчик не хочет зависеть от технологии, которую контролируют четыре компании, и считает странной идею отказаться от собственного компьютера ради закрытого программирования на чужих серверах по подписке. Келли также не принимает аргумент, что ИИ-код работает неожиданно хорошо: для системного программирования, по мнению автора Zig, планка должна быть гораздо выше.
Перфекционизм Келли заметен и по темпам развития Zig. После 11 лет работы язык дошёл до версии 0.16, а новые релизы иногда содержат крупные изменения, ломающие совместимость. Келли считает, что версия 1.0 должна стать настоящим обещанием обратной совместимости, поэтому до финального релиза команда продолжит менять язык без этого ограничения. Цель проекта звучит амбициозно: создать язык, который сможет прожить следующие 50 лет.
Отдельно Келли объяснил переезд Zig с GitHub на Codeberg . По словам разработчика, GitHub просто перестал работать для команды: если сервер непрерывной интеграции не справляется, проекту нужен другой сервис. Codeberg оказался удобной заменой, потому что по интерфейсу и подходу близок к GitHub, а немецкая некоммерческая модель кажется Келли более стабильной, чем стартапы и крупные корпорации. Сам Zig финансирует Zig Software Foundation, американская некоммерческая организация со статусом 501(c)(3).
Среди спорных решений Zig остаётся курс на отказ от зависимости от LLVM, Clang и LLD как библиотек внутри проекта, хотя компилятор Clang сохранится. Решение приняли ещё три года назад, а Келли объясняет подход просто: ядро продукта не должно зависеть от внешней технологии, если проект способен заменить такую часть собственной реализацией.
JetBrains в интервью не получил публичной поддержки своих инструментов. Келли сказал, что никогда не пользовался продуктами JetBrains из-за закрытого исходного кода. Для разработки создатель Zig использует терминал и Vim.
Когда выйдет Zig 1.0, интервью не прояснило. В заметках к релизу сказано только, что цикл 0.17.0 будет коротким. Для проекта, который обещает язык на десятилетия, даже короткий цикл не означает спешки.