Полевой отчёт · октябрь 2026

Четыре фреймворка
глазами агента

AI-агенты построили одну и ту же платформу книжных клубов на Rails, Next.js, Go + Gin и Django. Вопрос один: насколько легко агенту писать по документации рабочий код и фичи.

Итог, 10 критериев
Бэкенд против фронтенда

Каждый силён в своём

Почему так
  • Rails — единственный, кто силён в обоих: встроены и серверные компоненты, и Turbo/Stimulus.
  • Django — почти Rails на бэкенде, но без аналога Turbo фронтенд приходится писать вручную.
  • Next.js — лучший фронтенд, а бэкенд собирается из чужих библиотек.
  • Go + Gin — строгий быстрый бэкенд, но он почти весь собран из библиотек, а для интерфейса нет ничего.
Фичи

Что даёт фреймворк, а что пишешь сам

встроено частично нет: библиотека или свой код
Почему так
  • Rails и Django — full-stack фреймворки: у них есть компонент на каждую серверную задачу.
  • Next.js — фреймворк для интерфейса, а Gin — только HTTP-роутер: всё остальное собирается из библиотек.
  • У Go многое закрывает стандартная библиотека (криптография, почта, шаблоны), но частично и без связки.
Оценки

Десять критериев

Почему так
  • Django выигрывает точностью примеров и инструментами: примеры работают как написаны, check --deploy ловит ошибки конфигурации.
  • Rails выигрывает встроенностью и предсказуемостью: правильное место для кода угадывается заранее.
  • Go делит с Rails и Django первое место по тестируемости: всё проверяется в коде за секунды.
Документация

Где агент берёт документацию

Объём документации, тысяч слов

Почему это важно
  • Агент не листает сайт, как человек: каждая страница — отдельный сетевой запрос.
  • Только у Next.js документация сама приходит при установке пакета и совпадает с его версией.
  • У Django самый большой справочник, но в обычную установку он не входит: его нужно отдельно скачать из исходного архива на PyPI.
  • У Gin документация в десять раз меньше: стыки компонентов приходится добирать из исходников и go doc.
Скорость обратной связи

Как быстро видно ошибку

Один цикл «правка → тесты», секунды

Тесты: в коде и через браузер

Почему так
  • Rails, Django и Go проверяют сервер прямо в коде, без браузера.
  • В Next.js серверные действия и компоненты вне браузера не запустить: остаются E2E-тесты.
  • У Go чуть дольше из-за компиляции, а с проверкой гонок -race — около 70 с.
Куда ушло время

Сколько отладки — по вине документации

Доли сообщили сами агенты Django и Go. Для Rails и Next.js таких замеров нет.

Почему так
  • В Go каждая пятая минута ушла на чужие ошибки: недокументированное поведение Gin и библиотек.
  • В Django таких минут вдвое меньше: справочник описывает поведение точно, спотыкались только на новых фичах 6.x.
Ошибки документации

Главные ловушки

Rails

  • Пример из гайда Plugins вызывает несуществующий метод.
  • Генераторы молча перезаписывают файлы, если нет терминала.

Next.js

  • При стриминге 200 вместо 401 и 308.
  • Пример CSP из гайда ломает production.

Go + Gin

  • Стриминг из Gin падает в рекомендованных тестах.
  • Ошибка шаблона отдаётся как 200 с пустой страницей.

Django

  • Ограничения нового DB_CASCADE видны только в system checks.
  • serialized_rollback ломает соседние тесты, в доке ни слова.
Объём

Чего стоило собрать продукт

Почему так
  • Go — больше всего своего кода: CSRF, сессии, flash-сообщения, layout-шаблоны пришлось писать самим.
  • Next.js и Go — по 12 сторонних библиотек под серверные задачи; у Rails их две.
Для агентов

Что выбирать

  1. Продукт с богатым бэкендом и простым UI — Django: точная документация, быстрые проверки.
  2. Full-stack продукт с интерактивным UI — Rails: всё встроено с обеих сторон.
  3. Сложный интерфейс поверх готового API — Next.js: лучшие фронтенд-инструменты.
  4. Нагруженный API-сервис — Go + Gin: строгие типы и один бинарник, но прикладной слой пишешь сам.
Методика
  • Шкала 1–10: 1–3 мешает, 4–6 терпимо, 7–8 хорошо, 9–10 образцово. «Скрытые ловушки» — обратный критерий.
  • Rails и Next.js оценивал я по ходу работы. Django и Go оценивали отдельные агенты (Claude Opus) по тому же ТЗ. Затем я калибровал их оценки вопросами по тем же ориентирам: агенты сами снизили доступ к докам (Django 9→8, Go 6→6,5), фронтенд Django (5→4) и бэкенд Go (7→6).
  • Фронтенд Go я снизил с 4 до 3: в матрице фич у него не закрыт ни один пункт, а у Django с одним частичным стоит 4.
  • Оценки разных агентов сравнимы грубее, чем Rails с Next.js: разница в 0,2 балла между Django и Rails — в пределах погрешности.
  • Баги dev-серверов и особенности локального окружения в оценки не входят.
  • Django и Go строились вторыми, по готовому ТЗ, поэтому время по git с Rails и Next.js не сравнивается.