Не секрет, что LLM в настоящее время являются неотъемлемой частью нашего рабочего процесса. Особое внимание заслуживает AI Coding Assistant — программный помощник, который поддерживает разработчиков, помогая писать более качественный и точный код, тем самым экономя время и ресурсы.

Давайте рассмотрим различные программные помощники, доступные на рынке для разработчиков с разными уровнями навыков, включая как бесплатные, так и платные варианты.

Но прежде чем мы погрузимся в детали этих инструментов, давайте ответим на вопрос: "Что такое эти помощники?".

Приятного прочтения(:

Что это такое?

AI Coding Assistant — это интеллектуальный инструмент, который служит для улучшения процесса написания кода, его оптимизации, отладки и ревью. Другими словами, это программное обеспечение, созданное с единственной целью: облегчить задачи разработчика.

Что касается его функций, то вот некоторые из них:

  • Интеллектуальные предложения по коду, которые учитывают контекст написанного, предлагая варианты продолжения кода;

  • Обнаружение ошибок: помощник автоматически выявляет баги и неточности, которые могли бы остаться незамеченными при ручном ревью;

  • Оптимизация: AI Coding Assistant может предложить изменения для улучшения производительности или эффективности использования памяти;

  • Код-ревью: ассистент помогает идентифицировать потенциальные проблемы и предлагает улучшения или исправления;

  • Рефакторинг: предоставляет рекомендации для улучшения структуры и поддерживаемости кода;

  • Интеграция с IDE: помощник может работать в тандеме со средами разработки;

  • Обучение: может функционировать как личный наставник в программировании, обеспечивая обратную связь в режиме реального времени;

  • Поддержка запросов и вопросов: можно вести диалог с AI, задавая вопросы по реализации функций, на что он генерирует примеры кода с объяснениями;

  • Документирование: ассистент способен помочь создать или обновить документацию кода, поддерживая актуальность комментариев и внешних документов.

Тем не менее, стоит заметить один значительный нюанс: многие помощники обучены на коде, написанном другими людьми. Это может привести к повторению "плохих практик" из обучающего набора данных и возникновению риска плагиата в предложениях по коду. Это важно учитывать при использовании подобных инструментов.

Codeium

Codeium — это бесплатное AI-расширение для автозаполнения кода и чат-помощник, поддерживающее более 70 языков программирования, которое легко интегрируется с разнообразными IDE. Этот инструмент ускоряет написание кода и предоставляет пояснения к нему, что способствует повышению эффективности работы и точности программирования согласно отзывам пользователей. Codeium доступен в форме браузерного расширения и совместим с такими известными IDE, как Visual Studio Code и Eclipse. В дополнение, инструмент включает функцию CodiumAI, которая предлагает ценные тесты для кода непосредственно в рамках рабочей среды, тем самым улучшая качество кода и повышая уверенность разработчиков в их работе.

Codeium, разработанный компанией Exafunction, Inc., базирующейся в Маунтин-Вью, обладает сертификацией SOC 2 типа 2, что подчеркивает его высокие стандарты безопасности. Инструмент, который облегчает процесс кодирования и использует передовые технологии искусственного интеллекта для повышения производительности, заслужил признание и положительные отзывы в профессиональном сообществе разработчиков.

Поддерживаемые языки: C+, CSS, CUDA, Delphi, Dockerfile, Ellixir, F#, Go, Groovy, Haskell, HCL, HTML, Java, JavaScript, Julia, JSON, Kotlin, MATLAB, Objective-C, PHP, Python, Perl, Powershell, R, Ruby, Rust, Sass, Scala, SCSS, shell, Solidity, SQL, Starlark, Swilt, Typescript, YAML и другие.

Поддерживаемые IDE: VSCode, JetBrains, Visual Studio, Jupyter / Colab / Deepnote / Databricks Notebooks, Vim / Neovim, Emacs, Eclipse, Sublime Text, VSCode Web IDEs, Chrome Extension.

JetBrains AI Assistant

AI Assistant от JetBrains предназначен для работы с их спектром профессиональных IDE, включая такие, как IntelliJ IDEA для Java, PyCharm для Python и другие.

Отличительной чертой этого инструмента является его способность интегрироваться с разнообразными LLM, предоставляя пользователям возможность выбирать между различными AI движками. На данный момент он совместим исключительно с моделями LLM от OpenAI, однако в будущем ожидается поддержка более широкого диапазона провайдеров.

Встроенный чат-бот в вашей излюбленной IDE значительно ускоряет процесс разработки, избавляя от необходимости переключаться между различными платформами, такими как ChatGPT. Теперь интеллектуальный помощник доступен непосредственно в среде разработки, обеспечивая возможность обсуждения кода и его просмотра в режиме реального времени.

Поддерживаемые языки: Java, Kotlin, и Python

Поддерживаемые IDE: IntelliJ IDEA Ultimate, AppCode, Aqua, CLion, DataGrip, DataSpell, GoLand, PhpStorm, PyCharm Professional, Rider, RubyMine и WebStorm.

BlackBox AI

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

Blackbox AI оснащен множеством функциональных возможностей, таких как интеллектуальное автозаполнение кода, чат-бот на основе ИИ, AI-помощник для формирования коммитов, предложения и создание кода, а также инструменты для сравнения изменений в файлах.

Поддерживаемые языки: JavaScript, Ruby, Python, Java, C, C++, PHP, SQL, R, Swift и другие.

Поддерживаемые IDE: VSCode, Jupyter Notebook, Chrome extension, Android app, website.

AskCodi

AskCodi представляет собой инструмент, предназначенный для ускорения и улучшения процесса написания кода, делая его более эффективным. Основой его работы является openAI Codex, являющийся LLM, тренированной на миллиардах строк открытого исходного кода.

Будь то предложения по оптимизации отдельных строк кода или рекомендации по функционалу — всё это доступно через обращение к Codi. Используя веб-приложение или устанавливая расширение для Visual Studio Code, Visual Studio или IDE от JetBrains, вы можете адаптировать его к своим потребностям.

С поддержкой более 50 языков программирования и фреймворков, AskCodi становится незаменимым помощником в процессе изучения новых технологий.

Кроме того, Codi поддерживает многоязычные запросы, включая ответы на немецком и испанском языках. Однако, как и любая LLM, качество ответов зависит от чёткости формулировок ваших вопросов на естественном языке.

Поддерживаемые языки: C#, C++, CSS, HTML, Java, JavaScript, Node JS, PHP, Python, React, Rust, Typescript и другие.

Поддерживаемые IDE: VSCode, IntelliJ IDEA, PyCharm, WebStorm, PHPStorm и Sublime.

Amazon CodeWhisperer

CodeWhisperer представляет собой универсальный инструмент для программирования, который предлагает рекомендации и автоматически генерирует блоки кода в реальном времени в рамках вашей IDE. Для активации CodeWhisperer достаточно написать комментарий, описывающий задачу, которую необходимо выполнить, и инструмент, учитывая контекст существующего кода, подберет соответствующие решения.

CodeWhisperer интегрируется с широким спектром платформ, включая такие популярные IDE как VS Code, JetBrains и Visual Studio, а также AWS Cloud9, командную строку, Jupyterlab и различные сервисы AWS, включая AWS Lambda, AWS Glue Studio и AWS EMR Studio.

Доступ к CodeWhisperer возможен в двух версиях. Индивидуальная версия, предлагаемая бесплатно пользователям с AWS Builder ID, включает в себя рекомендации по коду, отслеживание ссылок и сканирование безопасности. Профессиональная версия расширяет возможности, предоставляя административные инструменты для организаций и опции настройки, которые позволяют CodeWhisperer формировать более точные рекомендации на основе внутренних библиотек кода организации.

Поддерживаемые языки: Python, Java, JavaScript, TypeScript, C#, Go, Rust, PHP, Ruby, Kotlin, C, C++, Shell, SQL и Scala.

Поддерживаемые IDE: JetBrains IDEs (IntelliJ IDEA, PyCharm), Visual Studio Code, AWS Cloud9, AWS Lambda console, JupyterLab и Amazon SageMaker Studio.

GitHub Copilot

GitHub Copilot применяет обширный массив открытого исходного кода и алгоритмы машинного обучения для анализа контекста кода, предоставляя предложения по строкам и блокам кода в процессе набора.

Отличительной чертой GitHub Copilot является его ориентация на руководство пользователя. Вы можете принять или отвергнуть предложенные рекомендации, доработать их вручную и рассмотреть альтернативные варианты.

Инструмент поддерживает множество языков программирования и способен генерировать предложения даже на основе обычного текста, основываясь исключительно на контексте в файле. Примечательной способностью GitHub Copilot является его умение понимать не только программный код, но и естественный язык. Стоит отметить, что его рекомендации могут быть не идеальными, иногда они могут оказаться непрактичными или нецелесообразными в конкретных ситуациях.

Copilot располагает широкой интеграцией с различными IDE и редакторами кода через плагины для Visual Studio Code, Visual Studio, сред разработки JetBrains, Vim и других, а также он обучен на коде из публичных репозиториев GitHub.

Кроме того, Copilot обеспечивает защиту конфиденциальности и шифрование данных, гарантируя, что ваш код не будет доступен другим пользователям Copilot.

Поддерживаемые языки: Все языки из публичных репозиториев GitHub.

Поддерживаемые IDE: Visual Studio Code, Visual Studio, Vim, Neovim, JetBrains IDEs ((IntelliJ IDEA, PyCharm) и Azure Data Studio.

Tabnine

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

Tabnine поддерживает широкий спектр языков программирования, включая Python, Java, JavaScript, C++ и PHP и может быть интегрирован с множеством IDE, таких как IntelliJ IDEA, Visual Studio Code и Eclipse.

Tabnine предлагает контекстно-зависимые предложения кода, которые гармонируют с уникальными стилистическими особенностями вашей кодовой базы. Пользователи корпоративного плана могут также воспользоваться Tabnine Chat, который предоставляет опыт, аналогичный ChatGPT, помогая в создании документации, рефакторинге и тестировании кода.

Поддерживаемые языки: C++, C#, HTML/CSS, Go, Java, Javascript, TypeScript, NodeJS, PHP, Python, React и другие.

Поддерживаемые IDE: Visual Studio, VSCode, JetBrains IDEs (IntelliJ, Pycharm, etc.), Sublime, Jupyter Notebook и другие.

Replit Ghostwriter

Replit Ghostwriter - это редактор кода на основе ИИ, который предлагает функции автозаполнения, генерации, рефакторинга и объяснения кода для улучшения опыта программирования. Он может генерировать код на основе естественноязычных подсказок, предлагать код на основе кода в текущем файле, быстро рефакторить код и пошагово объяснять сложный код простым языком.

С помощью Ghostwriter ваше программирование станет проще, быстрее и приятнее. Среднее время ответа составляет 500 мс, он создан для скорости и только ускоряется. Python, Ruby, JavaScript, TypeScript, HTML, CSS, Go, Lisp, Haskell, Bash, C, C++, Rust, Java и JSON - всего лишь несколько из множества языков, которые он поддерживает.

Онлайн-среда разработки Replit, в которую интегрирован Ghostwriter, является самым простым и быстрым способом начать программировать всего за считанные секунды. Кроме того, она портативна, и скоро будут поддерживаться собственные мобильные приложения Replit для iOS и Android. Импортируя код из GitHub или другого репозитория Git, вы можете начать работу прямо сейчас.

Ghostwriter - это дополнение к существующим знаниям, а не замена базовых навыков программирования. Он действует как автоматизированный помощник, который может сократить время, которое вы тратите на поиск примеров кода или запрос помощи на сайтах вроде Stack Overflow.

Поддерживаемые языки: Bash, C, C#, C++, CSS, Go, Java, JavaScript, HTML, PHP, Perl, Python, R, Ruby, Rust, SQL и TypeScript.

Поддерживаемые IDE: Replit (не доступно в качестве расширения для локальных IDE).


В этой статье мы рассмотрели различные варианты AI Coding Assistant, актуальные в 2024 году. Каждый инструмент уникален своими функциями: некоторые из них доступны бесплатно с базовым функционалом, другие — платно с более продвинутым функционалом; в нашем обзоре представлены решения для разработчиков любого уровня мастерства. Для одних важна интеграция с AWS, для других — обучение помощника на коде из открытых источников. В любом случае, я надеюсь, что каждый сможет найти подходящий для себя инструмент, учитывая, что искусственный интеллект может значительно упростить повседневные задачи и сэкономить драгоценное время.

Спасибо за прочтение (:

Комментарии (9)


  1. Chaos_Optima
    22.04.2024 16:45

    Не хватает информации какие из этих ассистентов доступны в России без танцев с бубном. И ещё можно добавить GigaCode


    1. veseluha Автор
      22.04.2024 16:45

      Спасибо за проявленный интерес к статье! Да, вы абсолютно правы в отношении их доступности, на этот раз, к сожалению, не учла этого момента(
      А касательно других помощников - вы также правы, я сделала подборку, основываясь на отдельные критерии каждого из ассистентов, например, чтобы поддерживаемые языки и IDE были актуальными для пользователей, или, чтобы у инструмента было активное сообщество. Вообще, список можно бесконечно дополнять, например DataCamp Workspace AI или Tabby, поскольку они также могут претендовать на место в подборке, но я решила выбрать прямо таки самые-самые помощники)
      Но выбор, кончено, каждый делает в пользу наиболее удобного для себя


    1. xsunson
      22.04.2024 16:45
      +3

      Расскажу про Codeium - без танцев. Бесплатный индивидуальный тариф. Плагин для JetBrains в официальном каталоге. Подключение - регистрация, установка плагина, аутентификация.

      Подстановка подсказок Tab'ом, настроек нет. Но 8 из 10 по делу - посещает ощущение, что "читает мысли". Напрягает, когда хочешь поставить отступ, а он уже предлагает код.

      Бонус - статистика в ЛК по используемым языкам. Ачивки) Но это если телеметрию включать.


  1. TheCrashDown
    22.04.2024 16:45
    +2

    За список спасибо, сохранил

    Что можно было бы сделать лучше - не хватило какого-то сравнения этих инструментов (помимо поддерживаемых языков и ide), или хотя бы примеров кода на основе одинакового промпта, чтобы можно как-то выбор сделать между ними. Текстовые описания инструментов довольно похожи друг на друга


    1. veseluha Автор
      22.04.2024 16:45
      +1

      Спасибо вам! Да, их сравнения значительно бы улучшили статью, возьму на заметку при написании следующих статей(:


  1. cb_ein
    22.04.2024 16:45
    +1

    Тот, что от jetbrains, пока меня изрядно огорчает. Во-первых, я привык автокомплит табом завершать, а тут внезапно табом начала вставляться сгенерированная ИИ строка - ломает привычку, неприятно. Ну и во-вторых, строка эта в 9 случаях из 10 вообще не в кассу и приходится все стирать, чтобы написать то, что изначально хотел либо ожидал от автокомплита. Но хуже всего, если чушь от ИИ издалека оказалась похожа на ожидаемый код, но, например, имя функции / переменной чуть другое и я это заметил не сразу, что вынуждает лишний раз возвращаться в это место позже для правок.


    1. me21
      22.04.2024 16:45

      Да, я тоже попробовал с ним поработать, но потом ушёл на GitHub Copilot.


  1. Spinoza0
    22.04.2024 16:45

    А как же гигакод? )


  1. ivantgam
    22.04.2024 16:45

     SOC 2 типа 2

    Увы, эта SOC-2 сертификация довольно таки легко получается и не гарантирует целостность ваших данных.

    Не хватает ещё continue.dev, который можно использовать в паре с локальными LLM (LMStudio / Ollama):

    • бесплатно

    • без интернета

    • без танцев впна/карточек, если вы в РФ