Знакомиться с новым российским ПО — момент всегда трепетный и непростой: разработки имеют разный уровень проработанности и уникальности. В каких-то случаях к такому ПО не хочется даже возвращаться, а в каких-то, наоборот, российская разработка оказывается удобнее зарубежной.
Я уже давно занимаюсь разработкой, и с недавнего времени в этой сфере тоже появились отечественные инструменты на замену импортным. В частности, целая экосистема для разработки появилась у Сбера:
- Хранилище репозиториев GitVerse
- Среда разработки GigaIDE
- Нейросеть-ассистент GigaCode
Недавно я задумал создать один онлайн-сервис по теме импортозамещения, и решил использовать максимум российских инструментов для разработки, в частности, решения от Сбера.
Хранилище репозиториев
GitVerse позволяет хранить исходный код программы в облаке, такие хранилища с синхронизацией изменений и контролем версий называются репозиториями. GitVerse является аналогом иностранного GitHub.
Интерфейс сервиса хороший, позволяет моментально адаптироваться пользователю GitHub. Есть генерация паролей-токенов для ограниченного доступа сторонних приложений, открытые и приватные репозитории, задачи с канбаном, в общем, всё, что нужно для разработки.
Из всех российских альтернатив GitHub, GitVerse, пожалуй, лучшая.
Нейросеть-ассистент
ИИ-ассистент предназначен для консультирования и помощи разработчику в написании кода. Работает чат с нейросетью как внутри GigaIDE, так и внутри многих других популярных сред разработки:
Консультирование
Консультирование — это ответы на вопросы разработчика. Это практически тот же поиск в интернете, но без воды и с комбинированием информации с разных сайтов. Например, я однажды спросил, чем отличается одна команда от другой, и нейросеть, проанализировав информацию из интернета, кратко и по делу ответила на вопрос. При этом, если никто в интернете ранее не задавал именно этот вопрос, то пришлось бы искать разницу самостоятельно.
Вот, например, я задал вопрос нейросети в VS Code, и ответ ИИ достаточно краткий, но очень содержательный. Более того, к этому ответу можно также задавать вопросы, чтобы разобраться полностью.
Пример консультирования:
— Что такое rem?
— rem - это единица измерения в CSS, которая представляет собой размер шрифта корневого элемента (обычно это элемент <html>). 1rem равен 16px по умолчанию, но это может быть изменено в настройках CSS. Используя rem, вы можете гарантировать, что все элементы на странице будут иметь одинаковый размер независимо от размера шрифта корневого элемента.
Написание кода
Написание кода — более интересный аспект использования нейросети. Можно запросить абстрактный пример кода, который можно взять за основу, а можно указать названия переменных, и скопировать код в середину своего файла. Для этого даже есть кнопки.
Правда, не могу не отметить, что ассистент работает небыстро: к быстрому поиску в интернете привыкаешь, и когда нужно ждать ответа секунд 5, а то и больше — это воспринимается как продолжительное время. Да и ввод текста происходит с большим подтормаживанием, слова появляются в окошке ввода лишь через несколько секунд.
Также я сталкивался с тем, что некоторые подходы к использованию конкретных библиотек были устаревшими, то есть, с одной стороны, код был написан синтаксически корректно и повторял структуру документации и ответов на форумах, с другой — эти ответы и документация, увы, были не первой свежести, вследствие чего код требовал доработки.
Наверное, хотелось бы, чтобы такая система могла предложить правку в файле, но, наверное, это следующий уровень. В любом случае, программиста такая сеть не заменяет, но хорошо консультирует.
В качестве примера я попросил нейросеть создать простенькую страницу сайта, и это получилось отлично:
Разумеется, код может представлять из себя и более абстрактные алгоритмы — работа с массивами, например, но эти примеры слишком специфические, чтобы на них останавливаться.
Среда разработки
GigaIDE — среда разработки на базе IntelliJ IDEA. Среда разработки является, своего рода, текстовым редактором для программирования: такие программы облегчают написание кода, обращая внимание на синтаксические ошибки и подсказывая правильное написание переменных. Примерно так же офисные редакторы помогают в расстановке запятых и исправлении опечаток.
На главной странице GigaIDE показана разработка серверной части веб-приложения с помощью JavaScript — это именно тот язык, который я предпочитаю использовать при разработке, ведь на нём можно писать и клиентскую, и серверную части приложения.
IDE поддерживает самые популярные языки и работает на Linux, Windows и Mac.
Я использую российскую ОС Uncom OS, и на ней данная IDE также работает. Собственно, я думал и разрабатывать свой проект на данной системе: и разработка российская, и JS на главной, и выглядит всё так замечательно...
И всё было бы хорошо, если бы не два серьёзных "но":
- Весь интерфейс IDE исключительно на английском
- JSX, который используется в современных технологиях разработки на JS, тут, внезапно, не поддерживается.
Интерфейс
Безусловно, можно возразить, мол, для программирования нужно знать английский, но, во-первых, знать и хотеть видеть вокруг только его — разные вещи, ну, а во-вторых, настраивать IDE под себя, даже если в принципе английский знаешь, в этом случае задача неприятная.
Более того, у меня по этому поводу несколько вопросов к разработчикам данной IDE:
- Зачем показывать русский интерфейс на главной странице проекта, если его нет?
- В IDE, на базе которой разработана данная среда разработки, русский интерфейс есть (как и во всех серьёзных мировых аналогах). Почему не взяли русские слова оттуда, их бы хватило бы минимум на 90% элементов интерфейса?
Я спросил насчёт русского языка разработчиков, но они ответили, что русский у них лишь в дальнейших планах развития.
— То есть, включить русский язык в российской IDE нет возможности?
— Сейчас такой возможности нет, будем это реализовывать в будущем.
Сказать, что меня удивила эта ситуация — это ничего не сказать.
Поддержка JavaScript
Возвращаясь к главной странице, где нарисован русский интерфейс IDE, которого нет, там также нарисована поддержка JavaScript. Более того, на JS там написана серверная часть приложения, и для этого, действительно, IDE отлично годится:
Но если разработчик выбрал JS для сервера, неужели он будет писать клиентскую часть на "старом" простом JS и не воспользуется всеми возможностями усовершенствованного синтаксиса JSX, которому уже более 10 лет?!
Для меня данный стандарт синтаксиса является привычным, и поэтому я совершенно не ожидал, что GigaIDE поддерживает лишь обычный JS, который едва ли актуален для динамического формирования страниц на клиенте.
Более того, как и в случае с русским языком, среди продуктов IntelliJ, на базе которой разработана GigaIDE, поддержка JSX также имеется.
Если же современный JS-синтаксис увидит GigaIDE, она от него приходит в ужас и начинает видеть его как огромную кучу ошибок:
Более того, штатными средствами GigaIDE даже не запустить тот же сервер на JS, который нарисован на главной странице, это можно сделать только через открытие терминала. Всё дело в том, что IDE не понимает, что такое NPM-проект, хотя, исходя из сайта, кажется, что понимать должна. Неслучайно же весь сайт-визитка GigaIDE посвящён исключительно JS-разработке! Я серьёзно, там на "Скриншотах" нет никаких других языков:
На мой вопрос по этой теме, разработчики написали мне следующее:
В текущей версии GigaIDE есть поддержка только синтаксиса JavaScript, поэтому при работе с проектами на JS или TS могут возникать ошибки. В планах команды есть развитие JS и TS, а также внедрение поддержки фреймворков, но сроки реализации пока подсказать не сможем.
В общем, было бы смешно, если бы не было так грустно. Надеюсь, ситуация изменится в ближайшее время.
Итоги
Хотя использовать российскую IDE для разработки у меня не получилось из-за используемых мной технологий, за нейросеть и облачное хранилище репозиториев хочется сказать разработчикам спасибо: эти инструменты отличные и целиком замещают иностранные аналоги.
Более того, иностранные среды разработки, в которых можно установить GigaCode (как я и сделал в итоге), значительно "умнеют" благодаря российской нейросети.
Ну а когда GigaIDE получит поддержку русского языка, продвинутого синтаксиса JS и NPM-проектов — тогда я смогу целиком использовать всю экосистему разработки для своих проектов, и это будет очень круто.
Ещё у них обещана некая облачная версия среды разработки, на это тоже будет интересно посмотреть.
Спасибо, что прочитали, пишите своё мнение в комментариях, оценивайте статью и подписывайтесь на канал :)