Модели для кода: Cursor, GitHub Copilot X и open-source альтернативы

Сравнивая инструменты для кода, легко перепутать два разных вопроса: какая модель под капотом и как устроена обвязка вокруг неё. На практике второе влияет сильнее. Одна и та же модель, получившая нужные файлы проекта, и она же, видящая только открытый буфер, дают результаты разного качества.
Слои, из которых складывается качество
| Слой | Что делает | Почему важен |
|---|---|---|
| Модель | Генерирует код | Потолок качества |
| Сбор контекста | Решает, какие файлы показать | Чаще всего именно здесь разница между инструментами |
| Применение правок | Вносит изменения в файлы | Точечная правка против переписывания файла целиком |
| Проверка | Запуск тестов, линтера | Отличает предложение от проверенного изменения |
| Интерфейс | Как вы даёте задачу и смотрите диф | Определяет скорость итерации |
Три режима работы, которые надо различать
- Автодополнение. Дописывает строку или блок. Экономит нажатия, почти не требует внимания. Здесь важнее задержка, чем ум: подсказка, приходящая через секунду, мешает.
- Правка по инструкции. Вы выделяете кусок и говорите, что сделать. Основной рабочий режим, здесь решает качество сбора контекста.
- Агентный режим. Инструмент сам ходит по файлам, вносит правки, запускает тесты. Впечатляет на демонстрациях, требует жёсткого контроля дифа.
Инструменты сильны в разных режимах, и выбирать надо под тот, в котором вы реально работаете. Если вы девяносто процентов времени пользуетесь автодополнением, ум агентного режима вам ничего не даст.
Честная проверка за неделю
Возьмите неделю обычной работы и ведите простой учёт: - сколько раз подсказка принята без правок; - сколько раз принята и потом переписана; - сколько раз отвергнута сразу; - сколько раз пришлось искать баг, внесённый принятой подсказкой; - субъективно: где инструмент мешал (перебивал мысль, подсказывал не то). В конце недели посчитайте четвёртую строку отдельно. Один пропущенный баг съедает выигрыш от десятка удачных автодополнений.
Эта четвёртая строка — то, чего нет ни в одном обзоре, и то, что определяет реальную пользу. Особенно опасны подсказки, которые выглядят правильными и содержат ошибку в граничном случае.
Open-source и локальные варианты
Локальный инструмент выигрывает в приватности и в стоимости при большом объёме, проигрывает в качестве на сложных задачах и требует времени на настройку. Разумный критерий: если код нельзя отправлять наружу — вопрос выбора решён за вас; если можно — сначала посчитайте, сколько вы реально тратите на облачный инструмент в месяц, и сравните со стоимостью железа и времени на поддержку.
Промежуточный вариант, который часто упускают: локальная модель на автодополнении, где важна скорость и задачи простые, и облачная — на сложных правках. Так закрывается основной объём приватных данных без потери качества там, где оно нужно.
Что проверять при выборе, кроме качества кода
- Куда уходит ваш код. Что именно отправляется, хранится ли, используется ли для обучения, есть ли режим с отключением. Для рабочего репозитория это первый вопрос, а не последний.
- Как показываются изменения. Понятный диф с возможностью принять частично — важнее, чем кажется.
- Поведение в большом проекте. На репозитории в тысячу файлов сбор контекста работает иначе, чем на учебном примере.
- Работа с вашим стеком. Качество сильно различается между популярными и редкими языками и фреймворками.
- Что происходит офлайн. И что при недоступности сервиса.
Наблюдение, которое важнее выбора инструмента
Выигрыш от любого из них сильно зависит от того, как вы его используете. Наибольшая экономия получается на рутине: типовые преобразования, тесты, обвязка, повторяющиеся правки. Наименьшая — на задачах, где сложность в понимании предметной области. Разработчики, которые говорят, что инструмент бесполезен, и те, кто говорит об удвоении скорости, обычно оба правы — просто у них разная доля рутины в работе.
Названия конкретных продуктов, их тарифы и возможности здесь не разбираются: этот рынок меняется каждые несколько месяцев. Слои, режимы работы и недельный учёт применимы к любому инструменту, включая те, что появятся после публикации.