Сравнение бесплатных помощников по кодированию AI

Ранее я публиковал пост о ИИ-помощнике по коду — GitHub Copilot, где показал, как он работает с анимированными демками. Сегодня я хочу сделать обзор самых популярных бесплатных помощников кода и выбрать лучший для VS Code.

На сегодняшний день есть три самых популярных ИИ-помощника:

  • Microsoft Visual Studio IntelliCode (бесплатно)
  • Tabnine (бесплатная и платная версии)
  • GitHub Copilot (платно)
  • Кайт (бесплатно)

Почему я сказал три? Потому что другая компания приобрела программное обеспечение Kite и после этого (более 1 года) недоступно через официальный сайт. И никаких официальных заявлений о будущем Kite нет.

Если вы действительно хотите попробовать Kite в своей системе, он по-прежнему доступен по следующим ссылкам:
https://linux.kite.com/dls/linux/current
https://release.kite.com/dls/windows/current
https://release.kite.com/dls/mac/current

Чтобы сравнить этих помощников, я сделаю с нуля крошечное приложение Angular с

  • Страница авторизации Firebase
  • Защита авторизации
  • Редирект на главную страницу
  • На главной странице я выведу форму для публикации уведомлений для моего халявного проекта — methodist.io.

Visual Studio IntelliCode

IntelliCode — самый популярный ИИ-помощник с более чем 22,5 миллионами пользователей. Это расширение предоставляет функции разработки с помощью ИИ для разработчиков Python, TypeScript/JavaScript и Java. Он создан Microsoft исключительно для VS Code. В настоящее время это важное расширение для VS Code, установленное большинством.

Основные рекомендации JS

С этой задачей IntelliCode справляется быстро. В результате предлагаемые методы и переменные из Document, Window и DOM почти всегда на 100 % точны.

Я хочу обратить ваше внимание. Здесь я определяю реактивную форму в классе Angular. Потому что для меня ИИ должен читать этот контекст. Позже вы увидите, как расширения могут повторно использовать его. (спойлер: никак)

Определение типа

И вот пример. Это компонент Angular в проекте Angular, который содержит экземпляр реактивной формы.

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

Итак, как видите, ИИ здесь может только упорядочивать свойства и методы объектов и классов.

Экспорт и импорт

VS Code может автоматически импортировать зависимость, если вы точно знаете имя метода или класса. Вы можете написать имя в коде, нажать cmd/ctrl+space и выбрать импорт из предложений.

Но что, если вы не помните имя класса или хотите увидеть весь список экспортируемых переменных?

Вот что вы увидите:

В этом случае расширение ничего не сделает. Вместо этого вы увидите предложения ядра VS Code. И самое странное для меня то, что он не предлагает сначала импорт, который уже есть в коде.

Для импорта есть еще одно обязательное расширение — TypeScript Importer. Это действительно упростит вашу жизнь, если вы до сих пор не используете его.

Методы импортируемых зависимостей

IntelliCode будет предлагать правильные предложения с довольно хорошей точностью, если у зависимости есть интерфейс. Так же, как с Core JS.

Но не ожидайте, что предложения будут импортировать что-то, что должно использоваться в качестве аргумента в функции, которую вы только что набрали. Например, в функции набора Firebase нам нужно импортировать и указать ref(dbInstance, ‘path’) в качестве первого аргумента. И, конечно же, не подскажет.

Результаты для IntelliCode

  • Ускорить написание кода примерно на 10–15%
  • Работает в автономном режиме
  • Конфиденциальность соответствующая
  • Он просто лучше упорядочивает предложения автозаполнения VS Code. Кодовым помощником это назвать сложно 😄
  • Не работает с HTML

Табнин

Это популярный помощник по кодированию AI, который работает со многими языками и IDE. Он соблюдает конфиденциальность кода, и разработчики могут выбирать, где обрабатывать модель данных — на локальном компьютере или в облаке.

У Tabnine есть два тарифных плана.

  • Первый полностью бесплатный и его можно сравнить с IntelliCode.
  • Второй будет стоить $12/м. Но это ставит предложения на другой уровень. Версию Pro можно сравнить с GitHub Copilot, потому что она может предложить всю строку кода.

Tabnine Pro и GitHub Copilot я собираюсь сравнить в своих следующих постах. Где я постараюсь проверить, стоят они $10–12/м или нет 👀.

В этой статье мы сравниваем бесплатные помощники по коду.

Поддержка языков

Одной из самых сильных сторон Tabnine является список поддерживаемых языков.

Даже если его нет на официальном сайте, Tabnine все равно пытается предложить что-то полезное при написании кода. Например, Tabnine работает с файлами HTML.

Не много, но что-то)

Основные рекомендации JS

Во время текущего теста и моего предыдущего опыта Tabnine предлагает не так много предложений, но почти всегда то, что я хочу.

Вот пример определения начального объекта формы.

Все пять строк предлагают одно и то же с небольшой разницей. Ассистент решает, что .UTC() или .parse() способы нам не подходят). Но в любом случае предложение было правильным.

В отличие от IntelliCode, Tabnine может подсказывать не только свойства объектов или классов. Но даже предлагайте использовать класс, полагаясь на контекст вокруг вашего кода.

Определение типа

С типизациями дело обстоит гораздо лучше, чем с IntelliCode. Набрав : символа, Tabnine пытается предложить даже типы или интерфейсы.

Но позже я обнаружил, что это было совпадение. Добавление возврата с логическим значением в конце функции не повлияет на предложения.

Так что лучше, чем ничего, но я бы не стал на это сильно полагаться.

Экспорт и импорт

Импорт зависимостей кажется одной из самых сложных задач для VS Code. Независимо от того, какой помощник по коду вы предпочитаете, нет абсолютно никакой гарантии, что он предложит экспортированные переменные даже из файла в том же каталоге.

Итак, у нас те же результаты, что и с IntelliCode.

И неважно, импортировали ли вы уже переменные или нет. Как видите, он предлагает на первой позиции уже импортированный элемент. Игнорирование неизвестной переменной в строке 21.

Результаты для Tabnine

  • Ускорить написание кода примерно на 15–20%
  • Работает в автономном режиме
  • Конфиденциальность соответствующая
  • Для маломощных машин ИИ может работать в облаке (опционально)
  • Поддерживает множество языков, включая HTML
  • Иногда он скрывает предложения VS Code. В результате метод или свойство вообще не могут отображаться, когда Tabnine не предсказывает, что вы хотите.
  • Очень ограниченная поддержка импорта

Краткое содержание

Кайт официально недоступен для установки уже более 1 года. Так что среди бесплатных помощников по коду Tabnine показывает себя лучше всего. Использование Tabnine лучше, чем ничего, оно улучшит скорость набора кода на 15–20%.

Но, честно говоря, в VS Code и IntelliCode, и TabNine очень далеки от предложений автозаполнения Web Storm. Возможно, это ограничение редактора кода, так как VS Code — это не настоящая IDE. А Web Storm использует базы данных индексации, чтобы предоставлять наилучшие результаты поиска и предложения.

Позже я проверю функциональность, скорость и точность Tabnine Pro и GitHub Copilot. Так что уточним, стоит ли платить за ИИ-помощника $10–12 или нет?



Большое спасибо, что прочитали мою статью! Если вы не являетесь участником Medium и хотели бы поддержать меня, вы можете сделать это, перейдя по этой ссылке. Членство в Medium позволит вам читать мои посты и посты других людей на Medium. Еще раз спасибо за вашу поддержку!