Вопрос звучал уже дважды: если сгенерированный код не имеет значения — если всю тяжёлую работу по написанию синтаксиса берёт на себя ИИ, — зачем вообще выбирать Common Lisp для vibe coding?

Почему не Python, TypeScript или Java? Это мейнстримные языки с огромными обучающими выборками, модели генерируют на них код с высокой статистической точностью. Так почему целевым языком для генерации кода выбран нишевый Common Lisp?

Причин много, и все они сводятся к одному старому вопросу: зачем использовать Lisp, если можно взять более популярный язык? Ответ прост — популярность языка плохо отражает его полезность и выразительность. Сообщество Lisp знает это давно — именно поэтому Lisp когда-то и был выбран. Ориентация на популярность — это то, чем занимаются менеджеры среднего звена, чтобы гарантированно найти тёплое тело для поддержки кода. Элитные хакеры так не поступают.

  1. Базовый уровень экспертизы. Программирование на Common Lisp ведётся десятилетиями, язык знаком до мелочей. Vibe coding требует, чтобы человек-архитектор контролировал машину. Глядя на сгенерированный моделью код, за долю секунды можно понять, хорош он или модель галлюцинирует, заходя в тупик. Успешно управлять ИИ на языке, который не понимаешь глубоко, невозможно.
  2. Абстракция вместо реализации. Большинство современных языков заставляют описывать в точности, как машина должна перекладывать биты. Lisp изначально создавался как язык для выражения высокоуровневых абстракций, а не утомительных деталей реализации. От ИИ хочется получать архитектурную логику, а не борьбу с шаблонным кодом ради управления элементарным состоянием.
  3. Создан для элиты. Если честно, Lisp — язык, созданный элитными хакерами для элитных хакеров, а не для массового программиста. Он не ведёт за руку и не подстраивается под шаблоны программистских буткемпов, рассчитанные на наименьший общий знаменатель. Используя его как целевой язык, работаешь в среде, построенной для максимальной выразительности.
  4. Гомоиконность и AST. Пожалуй, самое большое техническое преимущество. Lisp гомоиконен — код структурирован как те же данные, которыми он оперирует. Когда LLM генерирует Python или Java, ей приходится предсказывать поверхностный синтаксис: пробелы, скобки, точки с запятой, жёсткую структуру классов. Когда LLM генерирует Lisp, она работает напрямую на уровне абстрактного синтаксического дерева (AST) — предсказывает чистую структуру. Устранение синтаксического трения даёт огромное преимущество для генерации кода ИИ.
  5. Макросы как сжатие контекста. В vibe coding самый ценный ресурс — контекстное окно LLM. Система макросов Lisp позволяет эффективно сжимать контекст: вместо того чтобы ИИ раз за разом генерировал многословный шаблонный код, этот шаблон можно спрятать за макросом. Модель изучает макрос, использует его и экономит тысячи токенов, что позволяет удерживать в памяти масштабные архитектуры в рамках ограничений модели.
  6. Интроспекция в REPL. LLM работает не в стерильном текстовом редакторе, а внутри Lisp REPL. Это позволяет модели заглядывать внутрь программы прямо во время разработки. Если нужно узнать состояние конкретного объекта или функции, модель может опросить работающее окружение. Это не работа с мёртвым текстом — это диалог с живой системой.
  7. Продвинутая обработка ошибок. Когда ИИ пишет плохой код (а это случается), система условий (condition system) Lisp обеспечивает продвинутую обработку ошибок и отладку. Вместо жёсткого краха, требующего полной перезагрузки, ошибка перехватывается, и модель может проанализировать стек вызовов и отладить сгенерированный код интерактивно, прямо в точке сбоя.
  8. Никаких перезапусков ab initio. Работа в REPL означает, что не нужно запускать программу ab initio (с самого начала) каждый раз, когда требуется проверить изменение. В компилируемом мейнстримном языке однострочное исправление от ИИ требует полной пересборки и сброса состояния. В Lisp достаточно переопределить конкретную функцию и сразу проверить её в REPL, пока остальное состояние приложения остаётся нетронутым. Скорость итераций несравнима ни с чем другим.

Элитному хакеру не дают язык для программиста-подёнщика. ИИ должен быть элитным хакером, а не просто исполнителем рутинных задач. Если ожидать от ИИ работы на элитном уровне, то и инструменты ему нужно давать элитные, а не язык для code monkey.