Найти тему
Максим Носко

Российская IDE оказалась без русского языка. Обзор GigaIDE, GigaCode и GitVerse

Оглавление

Знакомиться с новым российским ПО — момент всегда трепетный и непростой: разработки имеют разный уровень проработанности и уникальности. В каких-то случаях к такому ПО не хочется даже возвращаться, а в каких-то, наоборот, российская разработка оказывается удобнее зарубежной.

Я уже давно занимаюсь разработкой, и с недавнего времени в этой сфере тоже появились отечественные инструменты на замену импортным. В частности, целая экосистема для разработки появилась у Сбера:

  1. Хранилище репозиториев GitVerse
  2. Среда разработки GigaIDE
  3. Нейросеть-ассистент GigaCode

Недавно я задумал создать один онлайн-сервис по теме импортозамещения, и решил использовать максимум российских инструментов для разработки, в частности, решения от Сбера.

Хранилище репозиториев

GitVerse позволяет хранить исходный код программы в облаке, такие хранилища с синхронизацией изменений и контролем версий называются репозиториями. GitVerse является аналогом иностранного GitHub.

Главная GitVerse
Главная GitVerse

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

Из всех российских альтернатив GitHub, GitVerse, пожалуй, лучшая.

Нейросеть-ассистент

ИИ-ассистент предназначен для консультирования и помощи разработчику в написании кода. Работает чат с нейросетью как внутри GigaIDE, так и внутри многих других популярных сред разработки:

Консультирование

Консультирование — это ответы на вопросы разработчика. Это практически тот же поиск в интернете, но без воды и с комбинированием информации с разных сайтов. Например, я однажды спросил, чем отличается одна команда от другой, и нейросеть, проанализировав информацию из интернета, кратко и по делу ответила на вопрос. При этом, если никто в интернете ранее не задавал именно этот вопрос, то пришлось бы искать разницу самостоятельно.

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

GigaCode в VS Code: ответ на вопрос
GigaCode в VS Code: ответ на вопрос

Пример консультирования:

— Что такое rem?

— rem - это единица измерения в CSS, которая представляет собой размер шрифта корневого элемента (обычно это элемент <html>). 1rem равен 16px по умолчанию, но это может быть изменено в настройках CSS. Используя rem, вы можете гарантировать, что все элементы на странице будут иметь одинаковый размер независимо от размера шрифта корневого элемента.

Написание кода

Написание кода — более интересный аспект использования нейросети. Можно запросить абстрактный пример кода, который можно взять за основу, а можно указать названия переменных, и скопировать код в середину своего файла. Для этого даже есть кнопки.

GigaCode в VS Code: написание кода
GigaCode в VS Code: написание кода

Правда, не могу не отметить, что ассистент работает небыстро: к быстрому поиску в интернете привыкаешь, и когда нужно ждать ответа секунд 5, а то и больше — это воспринимается как продолжительное время. Да и ввод текста происходит с большим подтормаживанием, слова появляются в окошке ввода лишь через несколько секунд.

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

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

В качестве примера я попросил нейросеть создать простенькую страницу сайта, и это получилось отлично:

Пример страницы, которая написана нейросетью
Пример страницы, которая написана нейросетью

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

Среда разработки

GigaIDE — среда разработки на базе IntelliJ IDEA. Среда разработки является, своего рода, текстовым редактором для программирования: такие программы облегчают написание кода, обращая внимание на синтаксические ошибки и подсказывая правильное написание переменных. Примерно так же офисные редакторы помогают в расстановке запятых и исправлении опечаток.

https://gitverse.ru/features/gigaide
https://gitverse.ru/features/gigaide

На главной странице GigaIDE показана разработка серверной части веб-приложения с помощью JavaScript — это именно тот язык, который я предпочитаю использовать при разработке, ведь на нём можно писать и клиентскую, и серверную части приложения.

IDE поддерживает самые популярные языки и работает на Linux, Windows и Mac.

https://gitverse.ru/features/gigaide
https://gitverse.ru/features/gigaide

Я использую российскую ОС Uncom OS, и на ней данная IDE также работает. Собственно, я думал и разрабатывать свой проект на данной системе: и разработка российская, и JS на главной, и выглядит всё так замечательно...

И всё было бы хорошо, если бы не два серьёзных "но":

  1. Весь интерфейс IDE исключительно на английском
  2. JSX, который используется в современных технологиях разработки на JS, тут, внезапно, не поддерживается.

Интерфейс

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

Настройки на английском
Настройки на английском

Более того, у меня по этому поводу несколько вопросов к разработчикам данной IDE:

  • Зачем показывать русский интерфейс на главной странице проекта, если его нет?
  • В IDE, на базе которой разработана данная среда разработки, русский интерфейс есть (как и во всех серьёзных мировых аналогах). Почему не взяли русские слова оттуда, их бы хватило бы минимум на 90% элементов интерфейса?
Русский язык есть у программы, на базе которой разработана GigaIDE
Русский язык есть у программы, на базе которой разработана GigaIDE

Я спросил насчёт русского языка разработчиков, но они ответили, что русский у них лишь в дальнейших планах развития.

— То есть, включить русский язык в российской IDE нет возможности?
— Сейчас такой возможности нет, будем это реализовывать в будущем.

Сказать, что меня удивила эта ситуация — это ничего не сказать.

Поддержка JavaScript

Возвращаясь к главной странице, где нарисован русский интерфейс IDE, которого нет, там также нарисована поддержка JavaScript. Более того, на JS там написана серверная часть приложения, и для этого, действительно, IDE отлично годится:

Простой JS видится программе нормальным
Простой JS видится программе нормальным

Но если разработчик выбрал JS для сервера, неужели он будет писать клиентскую часть на "старом" простом JS и не воспользуется всеми возможностями усовершенствованного синтаксиса JSX, которому уже более 10 лет?!

Для меня данный стандарт синтаксиса является привычным, и поэтому я совершенно не ожидал, что GigaIDE поддерживает лишь обычный JS, который едва ли актуален для динамического формирования страниц на клиенте.

Более того, как и в случае с русским языком, среди продуктов IntelliJ, на базе которой разработана GigaIDE, поддержка JSX также имеется.

Если же современный JS-синтаксис увидит GigaIDE, она от него приходит в ужас и начинает видеть его как огромную кучу ошибок:

Куча "ошибок" в коде
Куча "ошибок" в коде

Более того, штатными средствами GigaIDE даже не запустить тот же сервер на JS, который нарисован на главной странице, это можно сделать только через открытие терминала. Всё дело в том, что IDE не понимает, что такое NPM-проект, хотя, исходя из сайта, кажется, что понимать должна. Неслучайно же весь сайт-визитка GigaIDE посвящён исключительно JS-разработке! Я серьёзно, там на "Скриншотах" нет никаких других языков:

Условный скриншот с сайта https://gitverse.ru/features/gigaide
Условный скриншот с сайта https://gitverse.ru/features/gigaide

На мой вопрос по этой теме, разработчики написали мне следующее:

В текущей версии GigaIDE есть поддержка только синтаксиса JavaScript, поэтому при работе с проектами на JS или TS могут возникать ошибки. В планах команды есть развитие JS и TS, а также внедрение поддержки фреймворков, но сроки реализации пока подсказать не сможем. 

В общем, было бы смешно, если бы не было так грустно. Надеюсь, ситуация изменится в ближайшее время.

Итоги

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

Более того, иностранные среды разработки, в которых можно установить GigaCode (как я и сделал в итоге), значительно "умнеют" благодаря российской нейросети.

Ну а когда GigaIDE получит поддержку русского языка, продвинутого синтаксиса JS и NPM-проектов — тогда я смогу целиком использовать всю экосистему разработки для своих проектов, и это будет очень круто.

Ещё у них обещана некая облачная версия среды разработки, на это тоже будет интересно посмотреть.

Спасибо, что прочитали, пишите своё мнение в комментариях, оценивайте статью и подписывайтесь на канал :)

Дзен | Telegram | ВКонтакте | Платформа