![](https://habrastorage.org/getpro/habr/upload_files/306/c4e/32d/306c4e32d3af15852ef34c4fbd057a66.png)
Две популярные IDE (среды разработки) с поддержкой искусственного интеллекта: Windsurf и Cursor. Оба инструмента заявляют, что ускорят процесс написания кода, но какой из них лучше подойдет именно вам? Я тщательно изучил обе, и ниже расскажу к каким выводам пришел.
Наверное вы слышали про Composer в Cursor (функциональность типа агента, ему можно формулировать задание в чате на естественном языке, он пишет и запускает скрипты в командной строке, при этом он может сам разобраться что ему нужно для понимания контекста). Если вы как и я фанат Composer, то стоит сказать спасибо Windsurf, они первыми придумали такое в их Cascade.
![Новый режим агента Cursor, может писать код сразу в нескольких файлах, запускать задачи в командной строке и автоматически определять, какой контекст ему нужен (не обязательно добавлять файлы явно). Новый режим агента Cursor, может писать код сразу в нескольких файлах, запускать задачи в командной строке и автоматически определять, какой контекст ему нужен (не обязательно добавлять файлы явно).](https://habrastorage.org/getpro/habr/upload_files/e43/49c/874/e4349c874a01b04a22b051ababf51a4b.gif)
Эта статья является переводом, который мы подготовили для нашего телеграм-канала для разработчиков, которые используют ИИ - AI4Dev. В нем уже почти 2 тыс. разработчиков с которыми можно обмениваться мнениями и реальными кейсами.
Windsurf имеет более чистый, простой интерфейс по сравнению Cursor. Это как сравнивать продукт Apple с Microsoft, вроде бы небольшие детали, но делают Windsurf более изящным.
![Cascade в Windsurf — это AI агент среды разработки, который может автоматически определять контекст, и выполнять команды Cascade в Windsurf — это AI агент среды разработки, который может автоматически определять контекст, и выполнять команды](https://habrastorage.org/getpro/habr/upload_files/ccc/a2e/918/ccca2e918722d2e3259bbf2275524474.gif)
Windsurf дешевле - $15 долларов за пользователя, по сравнению с $20 долларами за пользователя у Cursor, но их ценовая политика не такая прозрачная, как у Cursor. Кроме подписки в процессе работы с Windsurf могут потребоваться "кредиты на работу с моделью". Мне, к счастью хватило кредитов, надеюсь, и у вас они не закончатся.
Теперь сравненим подробнее.
Базовые ИИ функции
Обе IDE поддерживают все стандартные функции, которые вы ожидаете:
Автозаполнение на основе ИИ;
Работа с кодом в формате чата;
Генерация и обновление нескольких файлов одновременно;
Редактирование кода прямо в тексте с помощью ИИ.
Эти функции стали основными для IDE на основе ИИ, и обе программы хорошо справляются с ними.
![](https://habrastorage.org/getpro/habr/upload_files/e1c/444/439/e1c4444393db5749131886ebf1f47dce.gif)
Обе используют Claude
Обе IDE фактически имеют один и тот же "мозг", так как под капотом они используют Claude 3.5 Sonnet для сложных задач. Я не заметил значительной разницы в качестве генерации или обновления кода, и я не ожидаю, что она появится — на самом деле это просто пользовательские интерфейсы поверх LLM.
Когда кто-то говорит: "Этот код сгенерирован лучше, чем тот", мне кажется в реальности это сравнение двух разных ответов от Claude.
Обе среды используют меньшие модели для небольших правок и встроенного автодополнения, но я также не заметил значительной разницы в качестве одной маленькой модели по сравнению с другой.
![](https://habrastorage.org/getpro/habr/upload_files/81e/c54/3fb/81ec543fbe8afd90322091f6a41162b5.gif)
Windsurf: простой и понятный для новичков
Windsurf действительно стремится быть очень простым и удобным продуктом, который подходит для новичков и предлагает высокоуровневые, простые взаимодействия с вашим кодом:
Чат работает в режиме агента по умолчанию
Он индексирует весь код и подтягивает нужный по мере необходимости
Он будет работать с командной строкой
Он не загромождает интерфейс бесконечными кнопками и diffами
Вам нужно нажать кнопку "Открыть diff", чтобы увидеть изменения кода.
![](https://habrastorage.org/getpro/habr/upload_files/72c/470/3ac/72c4703ac114361dc8e362ea89f7e67a.gif)
Реально классный UX (пользовательский опыт) разработчика. Здесь не будет миллиона функций с тысячей режимов, в каждом из которых по десять вкладок и опций, которые придется изучать вечность. Просто откройте, начните писать, что вы хотите изменить, и это изменится. Все для счастья пользователя.
Cursor: больше ручного управления, больше контроля
В Cursor больше ручного управления:
Режим Composer чата по умолчанию normal (не агентный).
Вам нужно выбрать, какие файлы вы хотите включить в контекст для генерации
Он всегда показывает diffы
Он как бы настаивает, что вы всегда должны внимательно проверять этот код.
![](https://habrastorage.org/getpro/habr/upload_files/e31/2d8/cf6/e312d8cf67812ee8c525f0e00ee393cc.gif)
Cursor выглядит как более мощный инструмент с более точным контролем и управлением.
Здесь выше порог входа, и похоже, что многие люди даже не знают о лучших функциях Cursor (в отличие от Windsurf), но если вы его освоите, у вас будут все необходимые инструменты и даже больше.
Windsurf удобнее в процессе
Одна из вещей, которую Windsurf делает по умолчанию и что мне действительно нравится, – это то, что сгенерированный код записывается на диск до того, как вы его одобрите.
Т.е. вы увидите результаты прямо на своем сервере разработки в реальном времени. Вы можете проверить, соответствует ли сгенерированный интерфейс вашим ожиданиям, не вызывает ли новый код ошибки сборки и так далее — до того, как принять изменения.
![](https://habrastorage.org/getpro/habr/upload_files/53d/b18/a61/53db18a61b154b7b9892bd2c9375c47d.gif)
Если обновления не совсем верны, вы можете снова внести изменения через чат, прежде чем полностью принять все изменения. И если вам не нравятся изменения даже после нескольких итераций, вы можете вернуться к предыдущему шагу или даже отменить все изменения сразу.
Для сравнения в Cursor вам нужно принять изменения, и только потом вы сможете посмотреть на результаты. Иногда это означает, что вы вносите неправильные изменения. И отменить их тоже не так просто. Нужно выяснить, с какого момента начался именно этот чат (может быть в середине длинной переписки довольно трудно найти), и вручную вернуться к предыдущему состоянию.
![](https://habrastorage.org/getpro/habr/upload_files/b7e/990/1e0/b7e9901e09b24cc044e85f3eaf83c296.gif)
Мощные фичи Cursor
Чем Cursor действительно выделяется, так это множеством своих провинутых фич. Например, Cursor поддерживает мульти-Tab. Если он обнаруживает, что вы внесли изменение, которое требует дальнейшего изменения ниже по коду, вы можете просто нажать клавишу Tab и снова Tab, и т.д. чтобы вносить эти новые изменения раз за разом.
![](https://habrastorage.org/getpro/habr/upload_files/edd/b9f/40f/eddb9f40f47f6d0cd7ae3db0dab24ea9.gif)
Это суперудобно, когда все работает правильно, но, увы, он может предложить изменения и не там, где надо.
Cursor использует подход прикрутить ИИ везде, где только можно в IDE. У всего есть кнопка с ИИ:
Обнаружена ошибка? Нажмите кнопку "Исправить с помощью AI".
Появились варианты в выпадающем меню? Нажмите кнопку "Исправить с помощью AI".
Ошибка в терминале? Нажмите кнопку "Отладить с помощью AI".
![](https://habrastorage.org/getpro/habr/upload_files/1dd/52d/1db/1dd52d1db38b20e2d029d4046497adf0.gif)
Далее по клику обычно открывается чат, чтобы вы могли обсудить с ИИ и решить проблему.
Иногда это полезно, но кнопки и выпадающие меню загромождают интерфейс, мешаются и очень бесят, когда ты не можешь их закрыть.
Наличие ИИ в окне терминала - очень пригодится если вы, как и я, предпочитаете сосредоточиться на коде, а не запоминать точные названия команд и их аргументы.
![](https://habrastorage.org/getpro/habr/upload_files/841/04e/a2a/84104ea2ae65bb057a076c43ee07ce94.gif)
Но бесит, что Cursor захватил сочетание клавиш Command+K для этой функции, из-за чего я не могу использовать его для очистки терминала. И похоже, это нельзя переопределить или отключить.
Обе IDE позволяют задавать собственные правила сбора данных для формирования автозаполнений, но у Cursor более гибкие и мощные настройки. Например, можно использовать функциональность заметки "Notepads", по которым работает поиск и которые можно включать в контекст по мере необходимости, например, хранить там описание архитектуры.
Cursor значительно надежнее в управлении контекстом. Обе IDE позволяют вам помечать определенные файлы, которые вы хотите включить в контекст, но Cursor разрешает добавлять:
целые наборы документов;
конкретные страницы из интернета;
конкретные ветки и коммиты в git;
тег @web если вы хотите попросить ИИ поискать в интеренете
![](https://habrastorage.org/getpro/habr/upload_files/7b3/5bf/706/7b35bf706ab37305a9afb68b686952eb.gif)
Еще одна действительно классная функция Cursor — это автоматическая генерация комментария к коммиту одним кликом.
Что еще лучше, он учитывает ваш файл .cursorrules (файл, в котором прописываются правила для текущего проекта, что-то типа общего базового промпта в рамках проекта). Стандартный вывод слишком многословен для меня, поэтому я добавил заметку в свой .cursorrules, чтобы сделать коммиты короче, и вуаля, идеально.
![](https://habrastorage.org/getpro/habr/upload_files/7e6/489/d26/7e6489d2658b0539ca9c959482a42164.gif)
Еще одна интересная экспериментальная функция Cursor — это новый инструмент для поиска ошибок.
Под агрессивным сообщением об ошибке появляется кнопка с ценой (это может стоить доллар или несколько за клик). После нажатия ИИ просканирует все изменения кода в вашей ветке функции по сравнению с основной веткой и будет искать потенциальные ошибки в ваших обновлениях.
![](https://habrastorage.org/getpro/habr/upload_files/f74/c30/90d/f74c3090d8252f966b85fa84213d1fb6.gif)
Он нашел несколько действительно важных ошибок и сэкономил мне время на их поиск и исправление. Для каждой найденной ошибки он предоставляет оценку уверенности, описание.
Когда вы выбираете исправить ошибку в Composer, он заполняет детали в промпте и создает обновления, обычным способом.
Чего не хватает обоим
Главное, чего мне не хватает в обоих продуктах, — это более надежный цикл отладки. Что-то вроде того, что нам обещали в обещает AI агенте-разработчике Devin (и изредка у него получалось), но прямо здесь, в IDE.
![](https://habrastorage.org/getpro/habr/upload_files/6d7/930/b96/6d7930b96b32dc4e3b8a5cf23326a705.gif)
И Windsurf и Cursor, утверждают, что у них есть агенты, но я не уверен, действительно ли то, что они предлагают, является агентами.
Я полагаю что агент может придумать способ решения проблемы, оценить результат своей попытки и повторять процесс до тех пор, пока не убедится, что результат верен. Ни один из них этого не делает. ИИ в этих IDE только генерит код, а если в нем есть ошибки, вам придется самостоятельно их исправлять.
К счастью, в отличие от редактора Zed, Windsurf и Cursor являются форками на основе VS Code, а значит у вас есть доступ к огромному рынку расширений для VS Code.
Одно из доступных расширений — Cline, которое отлично работает с любым из этих IDE. Cline больше похож на агента, чем те, что есть у Cursor или Windsurf, так как он может выполнять серию шагов, оценивать результат, решать свои собственные проблемы и продолжать работу.
![](https://habrastorage.org/getpro/habr/upload_files/58a/624/ae6/58a624ae60dcc2c5779e15c44dc0d8b0.gif)
Cline удивительно умен в некоторых случаях, например, чтобы проверить результаты своей работы он может выполнять команды в терминале, открывать страницу в браузере, чтобы посмотреть, что выдал ваш сервер разработки, и так далее. Он не идеален, но это хороший шаг в направлении, в котором, я надеюсь, в конечном итоге пойдут и Cursor, и Windsurf со своими агентами.
Мой любимый способ использования
(примечание: тут минутка рекламы от автора, но т.к. плагин тоже любопытный , то можно ознакомиться)
Поговорим о совместимости с другими инструментами, давайте посмотрим, как вы можете превратить дизайн из Figma в код с помощью Cursor или Windsurf и использовать ИИ, чтобы оживить этот дизайн.
Вам нужно всего лишь запустить плагин Builder.io для Figma, выбрать элемент или фрейм, который вы хотите преобразовать, нажать «Сгенерировать» и скопировать полученную команду, а затем вставить ее в терминал Cursor или Windsurf.
Builder.io сгенерирует пиксельно-точный код из дизайна, даже повторно используя ваши существующие компоненты, как это сделали бы вы.
Теперь, когда у вас есть готовая разметка, вы можете перейти в Cascade или Composer Cursor и попросить их добавить нужную функциональность - данные, интерактивность и бизнес-логику. Вот рабочий процесс от начала до конца, который я обычно использую: беру дизайн, прошу ИИ добавить логику, автоматически генерирую коммит и запускаю pull-request. Магия!
Так что же выбрать?
Честно говоря, я не думаю, что вы ошибетесь, выбрав любой из продуктов — Windsurf или Cursor.
Оба являются отличными IDE, которые поддерживают AI автодополнение, редактирование, редактирование нескольких файлов, возможность общения с вашим кодом и агентные рабочие процессы, где они могут читать и записывать в несколько файлов.
Windsurf немного проще, интуитивно понятнее и имеет более приятный и элегантный интерфейс, при этом в Cursor больше интересной функциональности.
Эти кнопки повсюду могут раздражать, но мне трудно отказаться от некоторых функций. Мне нравятся автоматически сгенерированные описания коммитов, мне нравится инструмент для поиска ошибок, и иногда мне даже нравится использовать tab-tab-tab режим (особенно когда он работает).
От этого UI иногда кровь из глаз, но в качестве профессионального инструмента разработки я для себя выбираю Cursor.
Для начинающего разработчика или для кого-то, кто предпочитает элегантный интерфейс, Windsurf, вероятно, будет лучшим выбором. У него более низкий порог входа, и если вы переходите с инструмента вроде Bolt.new, Windsurf будет гораздо более привычным для вас.
Но это только мое мнение. А вы что скажете?
Комментарии (24)
1q2w1q2w
05.02.2025 09:59Я понимаю что это перевод, но Cline это вполне самостоятельный плагин для vscode. Никакой windsurf или cursor ему не нужен чтобы выполнять задания как агенту. Кмк это скорее конкурирующие решения нежели взаимодополняющие. Плюс в отличие от остальных cline open source с уже сложившимся сообществом. Не задавался целью, но почти уверен что можно использовать бесплатный deepseek как llm backend, в таком случае не понятно зачем вообще использовать платные решения (думаю открытые решения в итоге все равно победят, пусть у них будет и платная saas версия)
AndyKy Автор
05.02.2025 09:59Автор собственно пишет, что т.к. windsurf и cursor в основе своей vs code, то плагины к ним тоже подходят, и cline на них прекрасно работает тоже
KayumovRu
05.02.2025 09:59Пару дней назад буквально подключал DeepSeek к Cline в поисках альтернативы дорогому Claude Sonnet. Результат странный. Cline стал показывать огромное потребление токенов на выходе. По несколько миллионов за раз. При этом он уходил в цикл, сам делал какой-то вывод и пытался исправить проблему (безуспешно). Итого показал расход output в 19 млн токенов за несколько минут ))
После такого опыта я решил попробовать Сursor, оказался впечатлен четкостью и скоростью его работы, остаюсь на нем. Пришел к выводу, что хорошая среда - это не просто подключенный ИИ, но и, как минимум, много работы с правильным индексированием файлов и удержанием контекста.
Per_Ardua
05.02.2025 09:59У меня deepseek с cline тоже так себе работал, даже с дополнительным системным промптом.
Чуть ниже описал свой текущий подход:
Из моделей - клауд конечно топ. Но я использую несколько для разных целей. Gemini 2.0 flash thinking для создания плана на тасках средней сложности (справляется неплохо, если данных достаточно). Codestral на реализацию таких планов. Для мелочей подходит и codestral и qwen2.5 7b (который можно и локально поднять).
Получается полностью бесплатно.
Но если есть желание внести куда-нибудь денежку малую, то вариантов становится больше и можно посмотреть на какую-нибудь qwen 2.5 coder 32b, которая по бенчам очень неплохо выглядит (но с cline я её не пробовал).
Но на это надо тратить время, само собой. В этом смысле коробочные решения, конечно, лучше. Но моя сборка на моих тасках лучше работает, чем Cursor.
krendelbok
05.02.2025 09:59Использую Continue + ollama c локальными моделями. Абсолютно бесплатно и без подписок. Встроенной GPU в Ryzen хватает для qwen2.5-coder вполне.
Neikist
05.02.2025 09:59Аналогично. Плюс, что мне очень важно, есть поддержка и решений от jetbrains, не только vs code.
Per_Ardua
05.02.2025 09:59Чего не хватает обоим
Да, связка VSCode + Cline/RooCode + Continue закрывает большую часть функционала Cursor и предоставляет пару полезных фич, которые в Cursor не известно когда появятся. По качеству агента разницы тоже особо не заметил. Стоимость при этом: 0.
positroid
05.02.2025 09:59А можете описать эти фичи?
KayumovRu
05.02.2025 09:59На Cline есть быстрое разбиение на таски. Это то, что успел заметить за час тестов, пока не перешел на Cursor. Основная проблема Cline для меня в том, что использование в нем Claude Sonnet выходит дорого (в разы дороже курсора по моим расчетам во время теста), а с другими моделями работает заметно хуже.
AndyKy Автор
05.02.2025 09:59Получается в подписку Cursor за $20 как бы входит подписка на Claude $18
Kdg88
05.02.2025 09:59Давно не пользовался курсором. Но из относительно новых фич клайна - использование mcp серверов, они вроде раньше курсора внедрили авто выполнение команд. Ну и а целом курсор же не богодельня, у них может и есть скидки на антропикосвкий апи, но не бесплатный же он. Курсор очень сильно скальпирует контекст. В их интересах потратить на апи как можно меньше денег при качестве достаточном чтоб не отменяли подписку. У клайна же все наоборот - гуляем на все, т.к. апишка с тебя. У него только системный промпт под 10к токенов. И улететь за миллион токенов при работе над парой файлов не трудно. Ради интереса посидел с ним пару часов, слил почти 20 баксов, и на этом порешали. При чем 'проект' был 0 и вроде ничего сложного - написать плейврайт тесты для сравнения данных в двух гридах. Самому написать получилось быстрее, при том что впервые ковырял этот фреймворк.
positroid
05.02.2025 09:59В их интересах потратить на апи как можно меньше денег при качестве достаточном чтоб не отменяли подписку.
У cursor есть лимит на 500 "быстрых" запросов, дальше безлимитные "медленные", но можно же и свои ключи к api прописать и использовать напрямую по той же схеме + включить быстрые за отдельную стоимость и да, там тоже деньги быстро улетают.
По поводу контекста - есть настройка "Large context", которая это скальпирование по видимому отключает, быстрее тратя лимит быстрых запросов (или платных). Но сравнить мне не с чем, поэтому интересуюсь, спасибо.
Per_Ardua
05.02.2025 09:59Добавление MCP серверов практически по клику. Не смотрел как они под капотом промпты настроли, но добавляет всякие интеграции с использованием mcp он действительно хорошо (у меня из юзабельных, что он сам сделал: RAG для контрактов и доков по проекту и поиск по stack overflow и reddit).
Векторный поиск по коду (это скорее не фича, но преимущество), который работает лучше чем у Cursor (у них вроде tree-sitter).
-
Как выше написали, в плюсах ещё быстрое разбиение на таски.
Из моделей - клауд конечно топ. Но я использую несколько для разных целей. Gemini 2.0 flash thinking для создания плана на тасках средней сложности (справляется неплохо, если данных достаточно). Codestral на реализацию таких планов. Для мелочей подходит и codestral и qwen2.5 7b (который можно и локально поднять). Но я периодически пробую разные модели, для чего-то одно больше подходит, для чего-то другое. В любом случае, можно получить отличный результат совершенно бесплатно (хотя у меня gemini корпоративный, можно на бесплатке он сейчас совсем плохо работает, но раньше норм был).
Stikkibr
05.02.2025 09:59Я в курсор , я не программист, и сбрасываю триал, как это все развернуть есть где то мануал, только мне нужно чтобы он код редактировал как Claude, я потом что вообще особо не понимаю что , происходит , точнее не как Claude, а получше, хочу сделать себе АИ помощника, для магазина который будет консультировать клиентов, максимально хорошо, нап
Per_Ardua
05.02.2025 09:59Я сделал это за тебя, не благодари: https://aistudio.google.com/app/prompts?state={"ids":["1R6iwRj8IuYGNduOmxc6r5FuZAjeHyIoy"],"action":"open","userId":"116226768640275319857","resourceKeys":{}}&usp=sharing
Пробежался глазами, вполне себе адекватная инструкция Пункты про локальное развертывание моделей пропусти. Остальное тебе должно помочь.
positroid
Про изящный интерфейс windsurf вначале забавно, я понимаю что имеется ввиду, т.к. использую cursor, но gif, которые должны бы были это иллюстрировать выглядят как точные копии.
Это и все выводы в смежных абзацах не соответствуют действительности, cursor точно также сразу сохраняет на диск все изменения. Возможно, связано с изменением политики автосохранения файлов на onFocusChange, но это очень маловероятно.
Не совсем понимаю, о каком цикле отладки может идти речь. По хорошему для этого нужно 2 вещи: статический анализ и автотесты. Подключаете и настраиваете инструменты, пишете тесты (тем же ai) и просите исправить ошибки - cursor прекрасно этот цикл использует, с YOLO режимом даже подтверждать запуск команд в консоли не нужно.
AndyKy Автор
Спасибо, с примерами с YOLO супер!
AndyKy Автор
Про "цикл отладки" - я думаю тут речь о том, что Devinу в теории можно просто отдать багу из таск трекера, а все остальное он сделает сам (ну в идеале, пока совсем не всегда делает, конечно). Может быть можно в .cursorrules прописать подход как вы написали "статический анализ и автотесты" и оно заработает. Единственное что, думаю чтобы нормально заработало нужна будет рассуждающияя модель на шаге продумывания архитектуры решения и тестов. Т.е. :
Прочитал задачку, отдал ее подумать в o1/o3/R1
Получил план решения и что проверяют тесты - преедал его в Claude
Claude Написал код, проганл тесты, вернул в o1 на проверку
и так по кругу, пока проблема не решена.
positroid
Да, вроде уже к этому и идет, даже на уровне моделей есть r1-llama/qwen/etc, где размышляет одна модель, а ответ на основе рассуждений пишет другая и показывает результаты выше.
Думаю инструменты тоже подтянутся в этом плане
positroid
Да, вроде уже к этому и идет, даже на уровне моделей есть r1-llama/qwen/etc, где размышляет одна модель, а ответ на основе рассуждений пишет другая и показывает результаты выше.
Думаю инструменты тоже подтянутся в этом плане