惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 司徒正美
aimingoo的专栏
aimingoo的专栏
MongoDB | Blog
MongoDB | Blog
云风的 BLOG
云风的 BLOG
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 聂微东
Y
Y Combinator Blog
T
Tailwind CSS Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
S
SegmentFault 最新的问题
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园 - 【当耐特】
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
J
Java Code Geeks
美团技术团队
Google DeepMind News
Google DeepMind News
博客园_首页
Apple Machine Learning Research
Apple Machine Learning Research
T
The Blog of Author Tim Ferriss

Все публикации подряд на Хабре

Запускаем рекламу в дачной нише: какие креативы и форматы работают, на что смотреть в аналитике Паттерны организационного дизайна: практическое руководство Почему алгоритмы сливают твой депозит? 3 причины, о которых молчат «успешные» бэктесты Как «спят» вкладки в браузере Приоритет задач определяется не только ощущением срочности [Перевод] Махинации с прибылью Anthropic Project Loom: Virtual Threads, Scoped Values и preview #7 Structured Concurrency Мнения математиков о том, как ИИ опроверг гипотезу Эрдёша Слабоумие и отвага: как я за выходные сделала прототип ИИ-помощника для UX-дизайнера ИИ учит нас писать лучше. Или хуже? Как проектировать ИИ-инструменты, которые делают пользователей лучше «Раньше хотел каждый, сейчас и бесплатно не надо»: гаджеты, про которые мы все забыли ИИ-агенты в бизнесе: почему 80% компаний увольняют людей, но не получают ROI Как я строил ИИ-стартап, или Новые архитектурные риски 2026 4 интересных парадокса, рождающих жаркие дискуссии Рабочее место не-вайбкодера: настраиваем harness Когнитивный инжиниринг Feature Based Clean Architecture. Часть 1: Эволюция NestJS-приложения в неподдерживаемое состояние Как мы перестали бояться «пустых охватов» и сделали инфлюенс-маркетинг управляемым каналом роста Подключили B2B email-платформу к голосовым ассистентам через MCP. Архитектура, код, где ломается [Перевод] Почему AI-агенты ломаются на длинных задачах — и как обвязка помогает им дописывать приложения Облачно, возможны нейросети: кризис датасетов и ахиллесова пята систем машинного зрения — DIY-чтение на выходные Спустя 5 лет и $5 миллионов: почему создание нового языка для веб-разработки оказалось ошибкой Безопасная песочница Облачная LLM на 16 ГБ VRAM — часть 2: LangGraph Server, LangSmith и SDK Современный SSH-клиент для MS-DOS Как продвигать агентство недвижимости: от вывески до прямых эфиров MCP для GitHub + GitLab: инженерный гайд 2026 Вы платите OpenAI $20 в месяц, а он зарабатывает на вас ещё $100 млн за полтора месяца. И это только начало ИИ забирает работу «белых воротничков»: чему учить детей, чтобы выжить в будущем Практический ИИ-агент Python: LangGraph + Qdrant Как я делал ping и traceroute на iOS без entitlements — и почему это оказалось проще, чем UMP-консент для AdMob 4 MVP за 4 месяца, 30 холодных DM, 1 регистрация: building in public по-русски VPS-бастион: доступ к домашнему серверу без белого IP Kampus AI — нейросеть для генерации учебных работ для студентов и школьников Игры, помогающие продавать — примеры интересных рекламных акций с видеоиграми €500 в Telegram Ads принесли сделку на 350 000 ₽. Разбор B2B-кампании Чтение на выходные: «Разработка игр и теория развлечений» Рафа Костера Личный архив: сбор, бэкап, таймлайн фотографий INFOSTART TECH EVENT или INFOSTART A&PM EVENT — как понять, куда вам нужнее? Peer testing на основе Закона Линуса Релиз GitLab 19.0: ИИ-оркестрация, которая наконец-то догнала темп написания кода Как бизнесу оценить готовность к аттестации по новому Приказу ФСТЭК № 117 Технический гайд по сторис – часть 4: как мы добавили видео формат Представительство в арбитражном процессе: правовые различия между внешним защитником и инхаусом «Где новые фичи?» — Как AI-миграция легаси вернет IT-бюджет бизнесу Что нужно знать работнику про увольнение Новые требования Москвы к ЦИМ для АГР: готовый инструмент для проектировщиков в nanoCAD BIM Строительство WireGuard: простота и надёжность современного VPN-туннеля или секретное рукопожатие в тёмной комнате Выйдет ли GTA 6 в 2026 году, и чего ждать от игры Как меня назвали «невовлечённым», а я нашёл офшоры на Кипре Как LLM научила рекомендательную модель видеть больше, чем историю взаимодействий От хаоса к экосистеме: Модель зрелости комьюнити в бизнесе Свет, тьма, VEML7700 и Python Сказ о том, как мы процессы разработки в GRI меняли. Часть 2 Майский «В тренде VM»: громкие уязвимости в Linux, ActiveMQ, SharePoint и Acrobat Reader Статический анализ, заряженный ИИ: как LLM ищут уязвимости в коде и где их границы Блок “Процессы” и почему мы называем его нашим мини-n8n Как поменялся рынок интернет-рекламы: сравнение первых кварталов 2025 и 2026 годов: исследование click.ru Мониторинг Kerio Connect через Zabbix 7: разбор шаблона без агентов и regex по DAT 671 Allow в Claude Code за день: как родился сетап Spec-build 3 известные интересные задачи на логику Как айтишнику позаботиться о менталке и не перерабатывать OpenAI vs Anthropic: битва экс-коллег за корпоративного клиента и $1 трлн на IPO SEO для интернет-магазина в 2026: что поменялось и как с этим работать Сможете ли вы спроектировать Maven‑монорепозиторий для 5 микросервисов? 6 неудобных вопросов про американское произношение, которые айтишники боятся задать Неожиданная встреча: теория графов вновь помогла решить проблему в анализе Фурье Иллюзия трансформации: почему компании платят за спектакль вместо изменений AMD представила Ryzen 9 PRO 9965X3D и еще 5 процессоров, которые пойдут далеко не всем История IDE в Google Первые отзывы на новинки о System Design Влияние параметра planner_upper_limit_estimation на планы выполнения и профиль нагрузки PostgreSQL при использовании 1C Границы 100% разработки с агентами Быстрый OCR на основе Paddle Дооснащение любительской электровакуумной мастерской. Вакуумметр, течеискатель, полярископ Mythos: модель, о которой Anthropic не говорит. Реверс по жертвам — от 27-летней дыры в OpenBSD до побега из песочницы Как использовать Qwen3.7-Max и Grok Build 0.1 для ИИ-агентов в России Suricata IPS NFQueue with nDPI. Часть VI Важные изменения в защите информации в России: что нового? В чем секрет достоверного замедления биологического старения? Вредное ускорение: Умный светофор на перегруженных перекрестках Как сисадмин написал свою библиотеку для Jira на Ruby: история Rujira Сломанный найм: почему рынок труда превратился в казино и что с этим делать Физики нашли свидетельства того, что Вселенная не идеально однородна, вопреки стандартной модели космологии Вопросы на собеседованиях, к которым лучше готовиться заранее Что детектировал детектор таксофонных карт? Как работают выделенные ядра в облачном сервере: от планировщика Linux до тестов производительности Математика кластеров: разбираемся в умной кластеризации данных на примере нашей системы поиска аномалий в логах. Часть 1 Ответы с «деврел‑супервизии», вопрос седьмой: выгорание, когда от вас ждут вечный драйв и креатив История одного // todo, который ждал своего часа пол года Если пропустили Claude последние 3 месяца: топ-5 фич с юзкейсами и история про $400K в Bitcoin Проектируем с нуля калькулятор на FPGA. Части 4 и 5: Фреймворк и оборудование Почему 10× от AI могут дать только лояльные сотрудники Speech-to-LaTeX: распознавание математических выражений и предложений в LaTeX Что внутри портфолио продуктовых и ux/ui-дизайнеров из Т-Банка, Додо, Figma, Альфы, Revolut? Чем заменить Excel в 2026 году: обзор российского ПО и других аналогов Как Rust обрабатывает repr и ABI на границе с C: что ломается и почему 5 промтов, чтобы подготовить презентацию в нейросетях через SpeShu.AI Каггл «200 ёлочек 2025»: призы уже раздали, но мы и за идею задачу укладки порешаем. Часть 1
Zero — новый agent-first язык программирования от Vercel, который изменит все (нет)
kee_real · 2026-05-23 · via Все публикации подряд на Хабре

Уровень сложностиСредний

Время на прочтение8 мин

Охват и читатели1

Обзор

Официальная иллюстрация с x.com

Официальная иллюстрация с x.com

Agent-first язык программирования звучит как хорошая идея, да?

В конце концов, агентам не нужны фигурные скобки. Им не нужна красота if, while, for, match, Result, try, await, naming conventions и вот этого всего, сделанного для нас - кожаных мешков.

Именно поэтому Zero от Vercel Labs на первый взгляд выглядит как интересный эксперимент. Официальный сайт называет его языком для агентов, README говорит про "agent-first programming language", а авторский пост в X обещает systems language, который быстрее, меньше и проще для агентов в использовании и дебаге.

Звучит почти убедительно. До тех пор, пока вы не открываете код.

Что такое Zero

Zero - экспериментальный systems language от Vercel Labs. Репозиторий vercel-labs/zero на момент написания уже набрал тысячи звезд, релизы и стандартный для продуктов Vercel уровень упаковки: сайт, документация, примеры, CLI, бенчмарки и т.д, и т.п.

Официальный pitch такой:

  • минималистичный и простой синтаксис, чтобы агент мог "выучить его на лету";

  • стандартная библиотека вместо поиска зависимостей;

  • structured tooling: diagnostics, graph facts, size reports, repair plans в машинно-читаемом виде;

  • explicit effects: доступ к внешнему миру должен быть виден в сигнатуре;

  • предсказуемая память, маленькие native binaries, меньше магии.

Если убрать маркетинг, идея нормальная. Даже хорошая.

Проблема в том, что почти каждый пункт уже существует где-то рядом: в Rust, Zig, TypeScript, Language Server Protocol, компиляторах с JSON output, статических анализаторах, линтерах, пакетных менеджерах и просто в нормальной инженерной дисциплине. Zero же пытается продать это как новые подходы в дизайне языка, приправленные синтаксисом а-ляret + 40 2, чтобы казаться более "агентским".

Agent-first learnability

Официальная формулировка: язык должен быть маленьким, регулярным, с небольшим количеством special cases, чтобы агент мог быстро научиться по примерам, документации и feedback от компилятора.

В теории - отлично. LLM действительно лучше работают с регулярными паттернами. Чем меньше синтаксических исключений, тем ниже вероятность, что модель начнет галлюцинировать JavaScript внутри Rust внутри YAML.

Но есть нюанс, который почему-то постоянно забывают в разговорах про "язык для AI": агент не появляется в вакууме. Он обучается на датасете.

TypeScript, Rust, Zig, Python, Go, C, C++ есть в training data в промышленных объемах. Там есть миллионы репозиториев, issues, PR, Stack Overflow, блогов, compiler errors, CI logs, cargo output, GitHub Actions, линтеров и гайдов на Хабр о том, как завести create-react-app. Данных по zero, извиняюсь за каламбур, - zero.

То есть "агент может выучить язык на лету" на практике означает: каждый раз кормить агенту документацию, примеры, skill-файлы и надеяться, что он не перепутает синтаксис Zero с любым похожим языком, который был у него в датасете. Это не learnability. Это context tax.

И пока я писал эту статью о синтаксисе Zero, его похожести на другие языки и той самой learnability случается следующее:

21 мая 2026 года в репозитории появляется коммит 229331fe93119e481cd24fd75b3d67a9e2c1db84:

А не изменить ли нам весь синтаксис языка целиком?

А не изменить ли нам весь синтаксис языка целиком?

Сухая статистика: 711 файлов изменено, 6854 вставки, 8904 удаления. Мигрировали examples, fixtures, docs, skills и command contracts.

До:

fun answer() -> i32 {
    return 40 + 2
}

pub fun main(world: World) -> Void raises {
    let value = answer()
    if value == 42 {
        check world.out.write("math works\n")
    } else {
        check world.out.write("math broke\n")
    }
}

После:

// Скобки отменили, урааа, будущее
fn answer i32
    ret + 40 2

pub fn main Void world World !
    let value answer()
    if == value 42
        check world.out.write "math works\n"
    else
        check world.out.write "math broke\n"

С одной стороны, да, синтаксис стал "регулярнее". С другой - он стал похож на... Lisp? Извиняюсь перед любителями Lisp на всякий случай.

И самое смешное: агентам не "не нужны if/while/for". Документация Zero спокойно оставляет if, else, while, range for, match, enum, choice, type, defer, owned<T>, ref<T>, mutref<T>, Alloc, Maybe<T> и прочую человеческую цивилизацию. Просто теперь if value == 42 превратился в if == value 42.

Да, теперь выглядит действительно "agents-first".

Standard library first

Zero говорит: "агентам не надо каждый раз выбирать dependency stack". Частые задачи должны жить в стандартной библиотеке, с документированными API и предсказуемым поведением. Это, без иронии, правильная цель.

Агенты действительно плохо выбирают зависимости. Они берут пакет с 80 звездочками, последним релизом в 2019 году, API из README, которого уже нет, и потом с уверенностью объясняют, что "ошибка, вероятно, связана с окружением. Пошарьте свой .env. Я разберусь".

Но standard-library-first - это не уникальная идея. Go живет на этом десятилетиями. Python со своим "batteries included", тоже пытался. Rust пошел в другую сторону, но компенсировал ecosystem + cargo + docs.rs. TypeScript вообще паразитирует на огромной JS-экосистеме.

У Zero пока есть набор модулей: std.mem, std.codec, std.parse, std.fs, std.io, std.json, std.env, std.time, std.rand, std.proc, std.crypto, std.net, std.http. На бумаге выглядит прилично. Но проблема в том, что агенту нужен не только std.parse.isAsciiDigit, а знания вокруг: библиотеки, баги, паттерны, Stack Overflow, CI failures, странные edge cases и чужой production experience.

Без этого агент не "пишет на языке". Он решает синтаксическую головоломку с подсказками от компилятора.

Deterministic tooling

Несмотря на странную формулировку, тут Zero действительно выделяет хорошую идею.

Идея: человек читает сообщение, агент читает JSON. Компилятор не просто ругается, а дает структурированное описание проблемы и потенциальный план исправления.
Это сильная часть Zero, но проблема в том, что для этого не нужен новый язык. Это уже есть в Rust! Cargo, rust-analyzer, clippy, rustfix, compiler suggestions - вся эта инфраструктура годами строилась именно вокруг машинно-читаемых сигналов. Да даже TypeScript имеет compiler API и language service. ESLint давно выдает machine-readable reports и autofix.

Zero делает правильную вещь, но делает ее в самом дорогом месте: на уровне нового языка, новой экосистемы, нового синтаксиса и новой привычки для всех.

Сравнение с TypeScript, Zig, Rust

Возьмем самый честный пример: функция возвращает 42, программа печатает math works.

Zero (новый row syntax)

fn answer i32
  ret + 40 2

pub fn main Void world World !
  let value answer()
  if == value 42
    check world.out.write "math works\n"
  else
    check world.out.write "math broke\n"

TypeScript

function answer(): number {
  return 40 + 2;
}

function main(): void {
  const value = answer();

  if (value === 42) {
    process.stdout.write("math works\n");
  } else {
    process.stdout.write("math broke\n");
  }
}

main();

TypeScript не systems language, он явно не agents-first, но у него есть то, что для агента пока важнее синтаксической "регулярности": гигантская обучающая база. Модель видела этот код миллионы раз. Она знает, как выглядит if, как выглядит process.stdout.write, как выглядят типы, ошибки tsc, ESLint autofix, Vitest, package.json и Stack Overflow ответы из 2007 года, которые уже не работают, но все еще лежат в датасете как культурный слой.

И самое интересное, что Zero, как язык, сразу сделанный для агентов даже не особо-то и компактнее. То есть вы вряд ли сэкономите много токенов при переезде на него с TS.

Поехали сравнивать с более близкими экземплярами.

Zig

const std = @import("std");

fn answer() i32 {
    return 40 + 2;
}

pub fn main() !void {
    const stdout = std.io.getStdOut().writer();

    if (answer() == 42) {
        try stdout.writeAll("math works\n");
    } else {
        try stdout.writeAll("math broke\n");
    }
}

Если бы Zero был "Zig plus first-class JSON repair metadata for agents", разговор был бы интереснее. Но текущий row syntax выглядит не как следующий шаг после Zig, а как попытка доказать, что префиксные операторы - это точно нужно агентам.

Rust

use std::io::{self, Write};

fn answer() -> i32 {
    40 + 2
}

fn main() -> io::Result<()> {
    let value = answer();
    let mut out = io::stdout().lock();

    if value == 42 {
        out.write_all(b"math works\n")?;
    } else {
        out.write_all(b"math broke\n")?;
    }

    Ok(())
}

Rust сложный. Давайте все, кто пытался его изучить, но так и не осилил, нажмут стрелочку вверх под этой статьей. Но Rust дает агенту сильные guard rails в виде типов, ownership, ?, cargo check, rustc --error-format=json, rust-analyzer и огромной базы реального кода.

Да, агент будет спорить с borrow checker. Но это хотя бы будет спор с надежным механизмом, который уже проверен годами и тысячами разработчиков.

Если свести сравнение к тому, что реально важно агенту, получается не очень празднично для Zero:

Критерий

TypeScript

Zig

Rust

Zero

Объем кода в датасетах

огромный

средний

большой

почти ноль

Structured diagnostics

через compiler/language service tooling

слабее, но язык простой для анализа

rustc --error-format=json, cargo, rust-analyzer, clippy

заявлено как центральная фича, но мало примеров

Явные эффекты

нет, в основном дисциплина и tooling

ошибки/allocators явнее, IO не capability-first

ошибки через Result, ownership, но IO не capability-first

World, !, check, capability model

Читаемость
(на случай если вы уперлись в лимиты агента)

высокая, если не смотреть на типы React

высокая для systems-разработчика

высокая после адаптации и стадии принятия borrow checker

спорная после row syntax

Но самый честный аргумент против Zero: агенты учатся на прошлом

Vercel говорит: язык должен быть learnable on demand.

Но LLM не учится как человек-разработчик, которому выдали tutorial. LLM продолжает предсказывать следующий токен на основе своего датасета. Если в прошлом нет языка, у модели нет "интуиции". Есть только prompt, docs и feedback loop.

Да, агент может читать документацию Zero. Да, можно положить в репозиторий AGENTS.md, skill-data и examples. Да, можно сделать zero check --json, zero fix --plan --json, zero explain NAM003.

Но это означает, что лучший сценарий для Zero - не "агенты наконец получили свой язык". Лучший сценарий - "мы построили маленькую closed-loop среду, где агент может много раз ошибаться, компилятор его поправляет, а человек надеется, что итоговый diff имеет смысл".

Это не революция языка. Это REPL с autocomplete с ценой в ваших токенах.

Что говорят люди

Запуск в X был заметным. В агрегированном кластере Digg по оригинальному посту Chris Tate указаны 1.2M views, сотни комментариев и почти идеально расколотый sentiment: 49.9% positive против 50.1% negative. Удивительно, что так много позитивных.

Dumb or unnecessary

Dumb or unnecessary

На Reddit в обсуждении r/WebAfterAI дискуссия была более инженерной. Один комментарий хорошо формулирует скепсис: effects flavor - интересно, но не объяснено, что именно здесь так хорошо для агентов, потому что похожие linter/checker workflows есть во многих языках.
Но один комментарий хочу выделить отдельно, потому что это буквально та мысль, которая мучает меня и по сей день: почему это не middleware/readable layer поверх существующих языков?

То есть общественный консенсус примерно следующий: идея интересная, но все ждут, когда кто-то объяснит, зачем ради нее нужен новый язык, а не нормальные инструменты для старых.

Итог

Стоит проговорить, что вообще мне нравятся Vercel и их продукты, пока не нужно за них платить. Они сделали деплой пет-проектов очень простым и бесплатным, запустили классную инициативу с skills.sh, сделали шикарный cli agent-browser, но есть и очень спорные решения с их стороны, как например и это.

Zero - хороший эксперимент и ненужный язык программирования.

Если язык “для агентов”, но отсутствует в датасетах агентов, он начинает с минуса.
Если он “learnable on demand”, но синтаксис уже через несколько дней радикально меняется, будто у авторов нет четкого представления, что они хотят сделать.
Если он “agent-first”, но его все равно должны ревьюить люди в какой-то момент, то human readability нельзя выбрасывать как необязательную роскошь.

Возможно, через год Zero превратится в очень умный compiler/tooling layer, который все будут цитировать как ранний пример agent-readable development environment. Возможно, Vercel найдет killer use-case. А возможно, Zero станет еще одним репозиторием, который люди будут открывать в 2030 году со словами: “О, помните, когда мы думали, что AI-агентам нужен свой язык программирования?”

Если вам понравилась статья, и вы все-таки хотите читать о реально полезных инструментах для агентской разработки, то приглашаю в свой телеграм канал: OpenKirill: AI Coding и другие приколы. Мы там разбираем тулинг, следим за новыми трендами в AI кодинге, и хорошо проводим время.