Сравнение сервисов для написания кода
Мы
уже разбирались, какие LLM лучше всего показывают себя на аренах и в отдельных задачах. Сегодня узнаем, как популярные сервисы справляются с генерацией программного кода. Для этого я выбрал сервисы, которые чаще всего упоминаются в профессиональном комьюнити — в обсуждения на Reddit, статьях на Хабре, отзывах на GitHub и т.д. В итоге получилось 6 сервисов.
GitHub Copilot
По состоянию на август 2024 года, Copilot
использовал языковую модель GPT-4o.
Плюсы:
Обучение на множестве публичных репозиториев GitHub;Широкая поддержка языков программирования: лучше всего работает с JavaScript, Python и TypeScript.
Минусы:
Конфиденциальность: иногда генерируется код, защищенный авторским правом;
Нестабильность качества кода: его качество сильно
зависит от четкости и полноты исходного промпта.
Tabnine
Сервис работает на языковых моделях GPT-4o, GPT-3.5
Turbo и Tabnine Protected
Плюсы:
Может
работать с данными локально;
Обучение на собственном коде и репозиториях.
Минусы
Иногда выдает фрагменты кода, которые не соответствуют контексту задачи;
Хуже справляется с преобразованием запросов на естественном языке в код.
Replit Ghostwriter
Это комплексная IDE, которая интегрирована в платформу онлайн-кодирования Replit. Replit
использует для генерации собственную опенсорcную LLM Replit
Code
Плюсы:
Интеграция с Replit — AI-платформы для разработки и запуска ПО;
Мощные функции автозавершения кода: Ghostwriter умеет генерировать целые блоки, исправлять ошибки и объяснять код;
Поддержка 50+ языков программирования.Минусы:
Доступен только в среде Replit;
Проблемы с производительностью;
Могут возникнуть сложности с масштабированием проектов.
Cursor
Сервис работает на базе Visual Studio Code (VSC), использует GPT-4o, как и Tabnine.
ПлюсыПрирост скорости в работе у некоторых пользователей с Cursor
вырос на треть;
Формирует граф знаний обо всей вашей кодовой базе, предоставляя предложения с учетом контекста;
Предвосхищает правки, основываясь на предыдущих.
МинусыИИ работает неидеально: иногда промпты нужно переписывать несколько раз;
Не подходит новичкам;
Сгенерированный код иногда бывает излишне сложным.
Codeium
Codeium использует проприетарную LLM, сравнимую по производительности с GPT-3.5.
ПлюсыПоддерживает более 70 языков программирования;
Закрепление контекста: в качестве постоянного контекста можно выбрать каталоги, файлы, репозитории или элементы контекста кода.
МинусыСправляется с генерированием кода
хуже, чем с дополнением;
Некоторые пользователи жалуются на подтормаживания в работе;
Периодически приходится отключать подсказки Codeium из-за их бесполезности.
Cody
Сервис позволяет подключать для работы самые популярные LLM — GPT-4, Claude, Mixtral, Gemini и др.
ПлюсыПозволяет использовать inline-редактирование;
Не зависит от одной LLM: можно менять LLM в процессе генерации кода;
Интеграция с GitHub: это значительно сокращает время, затрачиваемое на проверку кода.
МинусыКачество кода: может отличаться в зависимости от используемой LLM;
Некоторые пользователи
отмечают слабое понимание контекста.
Что выбрать?
Мы с командой попробовал все шесть сервисов и в итоге нам больше всего понравился Tabnine. Его функционал максимально отвечает тем задачам, с которыми он бы мог в теории нам помогать. Для нас критично использование кода только с разрешительной лицензией. Плюс они никогда не берут код клиента для обучения своих моделей.
Поэтому при выборе стоит отталкиваться от потребностей, но в целом могу предложить такой рейтинг:
1.
Tabnine — широкофункционален и хорош для тех, кто заботится о приватности;
2.
GitHub Copilot — оптимален для разработчиков с комплексными задачами;
3.
Codeium — для тех, кто хочет потестировать возможности GitHub Copilot, но не готов за это платить;
4.
Cursor —
подходит опытным кодерам, знакомых с VSC;
5.
Cody —
оценят те, кто не хочет быть привязан в работе к одной единственной LLM;
6.
Replit Ghostwriter — подходит для новичков и простых проектов.