Первые впечатления от Cursor и GitHub Co-Pilot

Сегодня я пробую Cursor и GitHub Co-pilot. Запишу первые ощущения, пока они не затёрлись.

Cursor

Не впечатлил прямо совсем.

  1. Устанавливать отдельную IDE для меня — непреодолимое препятствие. Не хочу.

  2. Я попросил его обработать мои файлы в markdown и удалить из них лишнюю инфу. Он вместо этого мне в проекте на TypeScript выдал скрипт на питоне. Ну такое себе. Надо использовать тот же язык, что и проект, тем более, у меня уже есть скрипты в папке scripts и в package.json. Мог бы и догадаться.

  3. Я наругал его за то, что он пишет скрипты на питоне в среде на Node. Потом уточнил задачу — мне не нужен скрипт, мне нужно чтобы ты просто сам почистил файлы за меня (по сути это форма легкого рефакторинга). Он мне выдал скрипт на TS.

Закрыл нахер.

GitHub Co-Pilot

  1. Началось наше знакомство с того, что я не смог получить бесплатную версию. Просто "Unable to activate" или что-то типа того. Ну ок, я взял версию за 10 долларов в месяц с бесплатными 30 днями в начале.

  2. Пишет код он хорошо. Мне прямо понравилось.

    Задача была в том, чтобы используя уже существующие у меня компоненты, создать новый компонент для генерации метаданных в формате JSON-LD для Google (для SEO на сайте Metacast).

    Он неплохо справился с простой задачей. Когда я понял, что упустил edge case, я попросил дополнить компонент и он написал очень краткий код, в котором чёрт ногу сломит. Я попросил его рефакторить и получилось неплохо. Немного допилил напильником и всё заработало.

  3. Доработка напильником эффективнее самому, чем просить его допилить мелочи. Если ты знаешь, что делаешь, проще просто самому исправить, чем объяснять копилоту что тебе нужно.

  4. Мне понравилось, что он показывает diff. Это очень удобно.

  5. Удобно, что можно тут же попросить объяснить тебе то, что он сделал. По сути это тот же ChatpGPT, только вместо того, чтобы копипастить код в браузер, можно делать всё в контексте VSCode.

Общий вывод

Когда я понял, что копилот не справляется и включил ручное управление, я прямо в теле почувствовал, что не до конца понимаю его код. Всё происходило так быстро, а мои ревью были настолько поверхностными (типа выглядит правильно, ок, двигаемся дальше), что я не прочувствовал код, а только понимал как он работает на высоком уровне.

Это разница между знанием теории и практики. Теории недостаточно. Нейронные связи недосформированы. Их нужно закреплять практикой и регулярным повторением до мозолей, чтобы помимо нейронных связей была ещё и мышечная память.

В целом мне понравилось. Зашло то, что он может за меня описать такие "низкоквалифицированные" вещи, как типы данных (соответствующие схеме в документации гугла), создать каркас функций и т.п.

Но если пользоваться только копилотом, не фикся за ним мелочи и не разбираясь в его коде, то можно создать систему, которую будет сложно поддерживать в долгосрочной перспективе.

Нужен какой-то баланс между кодом от AI и самостоятельной работой. За полчаса работы с ним я уже подсел. Слезать не собираюсь.