Ну допустим, вы ждали мой пост про лучший из 4х AI ассистентов для программистов
TLDR: Я разработчик, и год тестировал ассистенты: Amazon CodeWhisperer, GitHub Copilot, Tabnine, и лучший – Cursor, имхо; актуально на момент 31 Aug 2024 15:58:51 GMT. Возможно, завтра всё изменится.
Чаще всего программисты мне отвечали, что используют ChatGPT в качестве ассистента. Сорри, гайз, но это не то, и звучит для меня:
– Как ты подкуриваешь сигарету?
– Жду, пока в меня ударит молния.
ChatGPT – это не помощник, а обуза. Я говорю конкретно о формате чата (вопрос-ответ). Писать вопросы в чат во время набора кода – бесконечно долго. И если это всё, чем вы пользовались, то не спешите делать выводы.
Этот пост об ассистентах для IDE
Disclaimer: Информация устареет к моменту, когда вы дочитаете пост. Я использую ИИ в работе ~1 год и не могу сосчитать, сколько раз менял мнение и предпочтения. Обновления поступают почти каждую неделю. В черновике этого поста я описал весь свой опыт, но не влез в лимит по символам, поэтому оставил только самое значимое. Если нашли, где я ошибся, тогда оставьте коммент – я ок.
Почему ChatGPT – не ассистент для написания кода
...а также Gemini, Claude, etc. Я говорю именно про формат чата, а не про LLM. Несколько раз слышал мнение «я использую ChatGPT, но много пользы не получил». Это так, когда вместо поиска ответа на stackoverflow, человек ищет ответ в ChatGPT. Если это и экономит время, то незначительно.
Ассистенты, которые я перечисляю, участвуют непосредственно в наборе кода. Это совсем другая механика.
«Спасибо, мне хватает IntelliSense» – недавно мне так сказали. Если очень коротко, то: ИИ автодополнение и IntelliSense нифига не одно и тоже.
Ассистенты, которые я тестировал
Вся статистика субъективная. У меня нет возможности проводить бенчмарки, которые будут устаревать каждый день. Единственное, что меня интересует - это мой личный опыт. Им и делюсь. В программировании я 11 лет.
Amazon CodeWhisperer (Q Developer)
Бестолковый настолько, что даже не верится. Во время работы не пропадает ощущение, что я как препод, вытягивающий троечника на пятёрку, но тот не понимает, что от него хотят. Зато бесплатно. Но зачем? Автодополнение самое "глупое" из всех. Использовал 4 месяца.
GitHub Copilot
Я работал с ним больше остальных – 8 мес. Он крут. Куски кода генерирует средне, иногда дольше описывать, что тебе нужно, чем набрать сам код. Можно использовать ~50% того, что он генерит. Основное, чем пользуюсь – автодополнение, и здесь он лучший после Cursor. $10 в месяц.
Еabnine
Жаждет быть "особенным", но по факту воюет за клиента с GitHub Copilot. И в этом его ошибка: они выбрали себе не самого крутого конкурента. Вот что значит ставить не самые амбициозные цели. Если их не задушит Copilot, то у них большое будущее. В душе болею за них. Автодоп не сильно уступает Copilot, а вот генерация кусков кода чуть хуже. $12 в месяц, 90 дней бесплатно. Использовал 2 месяца.
Cursor
На голову выше остальных. Их даже неловко сравнивать. Я чувствовал, что GitHub Copilot и его друзья могли бы работать как-то продуктивнее, но думал, что для этого пока нет технической возможности. Как оказалось, Cursor такую возможность нашёл. На его фоне остальные выглядят как дети. $20 в месяц, 14 дней бесплатно.
3 причины, почему Cursor – лучший AI ассистент
Главное, что выделяет Cursor – это то, что он не просто extension, а обёртка над VSCode, и полагаю, это даёт ему столько возможностей. Иначе я не понимаю, что тогда ограничивает GitHub Copilot скопировать те же фичи. У Курсора как будто на три руки больше, по сравнению с Копайлотом.
Что меня отталкивало от Cursor долгое время – я не хотел отказываться от своего VSCode. После первого прочтения лендинга, мне показалось, что это отдельная IDE. Но я ошибся – это тот же VSCode. Я могу один раз ошибиться?
Привыкание к Cursor заняло 10 секунд. Он скопировал абсолютно все настройки из VSCode. Есть отличия в интерфейсе, но незначительные.
Почему я выбираю Cursor
- Автодополнение. Cursor ошибается реже остальных.
- Его функции не заканчиваются автодопом, он понимает намерение. Пример: ты изменил название переменной, и Cursor сам предлагает переименовать все вхождения далее в пару кликов. GitHub Copilot для такого требует действие над каждым вхождением переменной. Cursor понимает не только что переименовать, а как меняется смысл написанного.
- Работа с контекстом. Все помощники индексируют проект, но Cursor "бредит" реже остальных. И есть киллер фича: когда задаёшь вопрос ИИ в Cursor, ты точно знаешь файлы контекста, которые он использует. Для примера, в CodeWhisperer и Copilot ты просто гадаешь, что они "видят", а что нет. В доке написано, что их контекст – это открытые вкладки, но на деле чем больше вкладок, тем хуже результат. Закрывать вкладки, чтобы облегчить жизнь ИИ ассистенту – так себе идея, кто кому тут помогает?
Минусы
- Cursor самый дорогой на рынке. Если не он, я бы выбрал GitHub Copilot или Tabnine.
- Почему вам может быть "больно" привыкать. Часто эти помощники "лезут под руку", и приходится шлёпать их эскейпом Esc по голове, чтобы не умничали. Это может накалять, когда ты из за сниппетов автопредложений не видишь свой код, но это дело привычки. Но признаю, Cursor "мусорит" сниппетами и перекрывает код чаще, чем остальные. Думаю, скоро сделают удобнее.
Вместо выводов
Да, я видел, как 8-ми летняя девочка генерирует программу с помощью ИИ ассистента, но это рекламный шум. За целый год использования ИИ, я всего пару раз сгенерировал что-то действительно с нуля. В реальных боевых задачах ИИ всё ещё не умеет качественно следовать архитектуре, стилю кода и (обиднее всего) читать мысли.
Никто из перечисленных ассистентов не может создавать за меня проект, но они отлично ускоряют работу.
Субъективно:
- самый отсталый CodeWhisperer ускорил мою работу на 10%
- GitHub Copilot и Tabnine ускорили меня на 20%
- Cursor - на 30%
Даже если мои цифры не работают для вас, и будут вполовину меньше, то можете посчитать за сколько времени вы оправдаете стоимость ИИ ассистента, который прибавит вам хотя бы 5% продуктивности.
Если этот пост подтолкнёт хотя бы одного человека к использованию AI ассистентов, или переменит его мнение с категорического отрицания, то я писал эту простыню текста не зря.
Есть что обсудить? Велкам в мой Tg канал Max's saying
Ц, я думал тут про грибы будет...
Значит где-то лежит статья про галлюциногены с айтишниками на фото...