Недавно СБЕР выпустил GigaIDE — новую IDE для Java, Kotlin и не только. Это событие вызвало бурные обсуждения среди разработчиков. Чаще всего звучали следующие вопросы:

  1. Это просто пересобранная версия IntelliJ IDEA CE?

  2. Если нет, что нового предлагает GigaIDE?

  3. Поддерживает ли она работу с базами данных и Spring?

Сегодня отвечу на эти и другие вопросы, которые могут возникнуть у тех, кто заинтересовался GigaIDE.

Обзор также доступен в формате видео на YouTube:

GigaIDE в двух словах

На сайте GitVerse можно увидеть, что IDE будет доступна в двух форматах: Desktop и Cloud.

Cloud-версию пока можно получить только по запросу на ранний доступ.

Но нас, как Java-разработчиков, больше интересует Desktop версия, и сейчас объясню почему.

Cloud версия основывается на VS Code, а Desktop версия — на IntelliJ IDEA и PyCharm.

Благодаря такой мощной базе в виде IntelliJ IDEA, разработчики на GigaIDE сразу получают поддержку Java и Kotlin. К тому же, в комплекте с GigaIDE идет еще 70 дополнительных инструментов, или простыми словами — предустановленных плагинов.

Однако из описания на сайте сложно понять, что мы, как разработчики, привыкшие к IntelliJ IDEA, потеряем или приобретем, осуществив переход на GigaIDE. Давайте разбираться!

Установка и первый запуск GigaIDE

Для получения доступа к инструкции по установке нужно пройти авторизацию на GitVerse через cloud.ru или Сбер ID.

На просторах интернета также можно найти ссылки для прямого скачивания установочных образов. Установка GigaIDE проста и поддерживается на основных операционных системах. Если вы сидите на MacOS, то не забудьте после установки запустить следующую команду:

xattr -c /Applications/GIGA\ IDE\ CE\ 2024.1.1.app

После запуска GigaIDE вы заметите, что она довольно сильно похожа на IntelliJ IDEA, что неудивительно, так как она базируется на open-source IDE от Jetbrains — IntelliJ IDEA Community Edition.

Следовательно, все возможности, которые у нас есть в IntelliJ IDEA Community Edition, также доступны и в GigaIDE! Но вот что это за возможности?

Ликбез: IntelliJ IDEA CE vs Ultimate

IntelliJ IDEA выпускается в двух версиях: платная Ultimate и бесплатная Community. Ultimate включает дополнительные плагины, недоступные в Community версии. Эти плагины делают Ultimate более функциональной, но основные возможности, такие как поддержка Java и Kotlin, рефакторинг, инспекции и многое другое доступны и в той и в другой версиях.

  1. Поддержка Java и Kotlin в обеих версиях включает подсветку кода, выявление синтаксических ошибок и автодополнения.

  2. Обе IDE предлагают рефакторинг кода, позволяя переименовывать методы, классы и пакеты, а также выносить и инлайнить методы.

  3. Инспекции и подсказки по улучшению кода также присутствуют и там и там, хотя в Ultimate их больше и есть специфичные именно для фреймворков, таких как Spring.

  4. Обе версии поддерживают Git.

  5. И наиболее популярные системы сборки Maven и Gradle.

  6. Также обе версии содержат дебаггер. Хотя в Ultimate он более продвинутый и включает поддержку реактивного стека.

  7. А вот работать с базами данных из коробки может только IntelliJ IDEA Ultimate.

    В Community Edition такой возможности нет, но можно получить схожую функциональность, если установить плагин Database Navigator.

  8. Также в состав Community Edition не входит HTTP клиент.

  9. Пожалуй, самое важное, чего нет в Community Edition, и про что я уже отчасти упоминал — отсутствие поддержки Spring Framework. Опять же, сейчас поддержку Spring в Community Edition получить проще простого, достаточно установить Amplicode, но из коробки он не предустановлен.

Кажется, что это основные фичи, без которых современную IDE трудно представить, и получается, что как минимум первые шесть фич точно есть в GigaIDE, а вот с наличием остальных нужно разбираться отдельно.

Возможности

IntelliJ IDEA Ultimate

IntelliJ IDEA Community

1. Java/Kotlin

+

+

2. Рефакторинги

+

+

3. Инспекции

+
(есть фреймворко-ориентированные)

+

4. Git

+

+

5. Gradle/Maven

+

+

6. Debugger

+
(есть поддержка Reactive Streams)

+

7. Database Tools

+

-
(но можно установить аналог – плагин Database Navigator)

8. HTTP Client

+

-

9. Spring Framework

+

-
(но можно установить аналог – плагин Amplicode)

70 плагинов в GigaIDE

Давайте посмотрим, какие 70 плагинов входят в состав GigaIDE и позволяют ли они нам закрыть в том числе потребность в тех фичах, которых не хватает в IntelliJ IDEA CE по сравнению с Ultimate. А может быть даже есть что-то такое крутое, чего нет в Ultimate?

Первое, что бросается в глаза, — это предустановленный плагин Database Navigator, который обеспечивает поддержку работы с базами данных. Отлично!

Присутствует также плагин JSONPath, что приятно, так как он облегчает работу с JSON-файлами.

Предустановлены плагины для Lombok, Quarkus и даже Spring. Позже мы запустим проект на Spring Boot и проверим их в действии.

Есть множество плагинов для поддержки различных языков и типов файлов, что тоже хорошо.

Особое внимание разработчики GigaIDE уделяют функциям, связанным с искусственным интеллектом. На лендинге упоминается GigaChat, он здесь также установлен, как и несколько, по всей видимости, вспомогательных плагинов, связанных с машинным обучением. По сути своей, GigaChat является альтернативой плагину AI Assistant от JetBrains.

Некоторые плагины, предназначенные для фронтенд-разработчиков.

MapStruct-плагин и VCS-плагины, знакомые по IntelliJ IDEA CE.

Особо стоит отметить LSP плагин, разработанный командой RedHat, он позволяет IDE поддерживать любой язык программирования, для которого есть language server.

В целом, это основные плагины. Я, конечно, пропустил многие, но большинство из них также входят в состав IntelliJ IDEA CE или слишком узкоспециализированы и не так часто используются Java и Spring разработчиками.

Также стоит отметить, что, по всей видимости, СБЕР пересобрал все плагины, которые вошли в состав сборки. Понять это можно, сравнив версию плагина, доступного в маркетплейсе и входящего в состав GigaIDE. Звучит логично, ведь как будто только таким образом можно будет гарантировать стабильность и возможность выпускать багфиксы по заявкам.

Возвращаясь к сравнению, имеется Marketplace, такой же, как в IntelliJ IDEA, где можно установить любые привычные плагины. Будь то Docker, доступный в официальном маркетплейсе JetBrains, или Amplicode, для которого потребуется настроить кастомный маркетплейс.

Итак, GigaIDE от СБЕРа из коробки закрывает 8 из 9 необходимых возможностей IDE, которые мы ожидаем увидеть.

Возможности

Giga IDE

1. Java/Kotlin

+

2. Рефакторинги

+

3. Инспекции

+

4. Git

+

5. Gradle/Maven

+

6. Debugger

+

7. Database Tools

+
(предустановлен Database Navigator)

8. HTTP Client

-

9. Spring Framework

+
(предустановлены Spring и Spring Assistant)

Давайте проверим на практике, насколько хорошо она это делает.

Работа с базами данных

Очевидно, что функции, которые есть в IntelliJ IDEA CE, будут без проблем работать в GigaIDE. Поэтому, чтобы не растягивать эту статью, проверим только возможность работы с базами данных и поддержку Spring Framework.

Привычной панели с иконкой базы данных сходу обнаружить не получилось. Для того, чтобы до неё добраться, нужно найти пункт «Database Navigator» в верхней панели и выбрать «Database Browser».

По сравнению с IntelliJ IDEA Ultimate выбор поддерживаемых СУБД здесь не такой обширный. Однако вкладка «Custom» даёт надежду на поддержку дополнительных баз данных, не упомянутых в списке.

Как и в IntelliJ IDEA Ultimate, панель с настройками в GigaIDE действительно впечатляет своим функциями. Кажется, что можно настроить практически всё что угодно.

Давайте настроим простое подключение к PostgreSQL, поднятому локально в Docker, и убедимся, что всё работает как ожидается.

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

В общем, поддержка работы с базами данных в некоторой степени имеется.

Проверка поддержки Spring в GigaIDE

Для проверки поддержки Spring откроем в GigaIDE популярное демо-приложение Spring Petclinic. В файле application.properties нет подсветки и автодополнений, в отличие от Ultimate.

Признаюсь, пока я тестировал GigaIDE, иногда подсветка свойств появлялась, но стабильной работы добиться не удалось, как и запечатлеть эту фичу на видео. Эта функция должна быть доступна благодаря плагину Spring Boot Assistant, но, видимо, он работает не очень стабильно.

В JPA-сущностях отсутствуют gutter-иконки, которые позволяют увидеть информацию о классе и его атрибутах в контексте фреймворка.

В контроллере GigaIDE показывает, что все эндпоинты не используются, что неверно, так как они используются, но не нами напрямую, а фреймворком. Это поведение схоже с IntelliJ IDEA CE.

В Spring Data репозиториях нет подсветки JPQL, gutter-иконок и автодополнений для методов на основе модели данных. Подсказки от ИИ присутствуют, но работают не всегда корректно.

Поля, аннотированные @Autowired, в классах с тестами отмечены как неиспользуемые, что также неверно.

Наконец, зайдём в docker-compose.yaml файл. Нет gutter-иконок, но есть предложение установить Docker-плагин. Почему-то он сразу не предустановлен, что немного странно.

Однако, установив плагин, мы получаем то же самое, что и в Ultimate IDE.

Одним словом, поддержки Spring на данный момент в GigaIDE практически нет. Забегая вперёд, можно сказать, что это не такая уж и большая проблема, так как есть Amplicode, и про него я расскажу в следующей главе. К тому же, по заверениям разработчиков GigaIDE, поддержка Spring должна появиться к концу 2024 года. Что ж, будем ждать!

GigaIDE + Amplicode: Включаем поддержку Spring и не только

Поскольку GigaIDE основана на IntelliJ, мы можем без проблем установить в неё Amplicode. Для этого откроем настройки, перейдём в секцию плагинов и:

  1. Нажмём на шестерёнку

  2. Выберем пункт "Manage Plugin Repositories"

  3. Скопируем ссылку на репозиторий из документации Amplicode

  4. Вставим её в GigaIDE

Остается только найти Amplicode в маркетплейсе, нажать кнопку «Install» и перезапустить GigaIDE.

Всё, теперь все возможности Amplicode доступны и в GigaIDE. Я не буду подробно останавливаться на них, вы можете посмотреть любое видео на нашем YouTube-канале, и все показанные в нём фичи будут доступны точно так же и в GigaIDE.

Лишь вкратце перечислю то, чего раньше не было:

  • Свойства теперь подсвечиваются, а если начать писать название нужного свойства, появляется автокомплишн.

  • Теперь напротив названия класса JPA сущности есть две gutter-иконки от Amplicode. Одна анализирует связи текущего объекта с другими сущностями, репозиториями и DTO (1), а вторая позволяет обращаться к наиболее популярным действиям над сущностями (2).

  • Все эндпоинты контроллера корректно подсвечиваются как используемые. Доступны две gutter-иконки от Amplicode с необходимыми действиями для контроллера (1), а также бин-навигацией с предпросмотром кода (2), которая, на мой взгляд, даже круче, чем в Ultimate!

  • В Spring Data репозиториях теперь есть подсветка JPQL, два геттера и подсказки при написании методов репозитория на основе информации о модели данных.

  • Autowired бины в тестах теперь не подсвечиваются как неиспользуемые.

  • В Docker Compose файле появилась возможность сгенерировать различные сервисы, используя панель Amplicode Designer.

    Кстати, эта же панель доступна во всех файлах, которые мы смотрели ранее. С её помощью можно сгенерировать новые элементы для текущего файла или отредактировать существующие.

  • Наконец, вы также можете найти панель Amplicode Explorer, которая позволяет проанализировать приложение в контексте используемых технологий.

Подводя итог, выбирайте сами, где вам использовать Amplicode — в IntelliJ IDEA Community, которая всё ещё доступна для скачивания из РФ, в GigaIDE от СБЕРа или в IntelliJ IDEA Ultimate. Amplicode работает на всех IDEA-совместимых средах разработки. А если вы заметите, что какая-то из фич работает некорректно, пожалуйста, напишите нам в телеграм-чат, и мы постараемся исправить проблему как можно быстрее.

Более подробно про основные возможности Amplicode я рассказывал в отдельном видео:

Заключение

Подводя итог, можно отметить следующие положительные аспекты GigaIDE. Российский вендор собрал open‑source версию IntelliJ IDEA, интегрировал в неё десятки плагинов, в том числе «воскресив» некоторые из них из пепла, что было бы невозможно сделать самостоятельно без серьёзных трудозатрат и экспертизы.

К минусам можно отнести не совсем полную свободу скачивания, всё-таки нужен Сбер или Cloud ID, а также пока что полное отсутствие поддержки Spring. Но, как я уже упоминал, и первый, и второй минусы можно нивелировать, воспользовавшись прямыми ссылками для скачивания GigaIDE и установив Amplicode в качестве главного инструмента для поддержки Spring.

Делитесь своим опытом использования GigaIDE в комментариях, возможно, я не уделил должного внимания тем возможностям, которыми вы пользуетесь чаще всего. Будет интересно почитать!

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


  1. gudvinr
    17.07.2024 08:39

    Почему скачать можно только по номеру телефона?


    1. aleksandy
      17.07.2024 08:39
      +2

      Потому что #каквсбере.


  1. bezboroda
    17.07.2024 08:39
    +1

    Скачал, сравнил с IDEA CE, в своем контексте - scala+chisel - различий не заметил, даже проект открылся тот же и так же со всеми настройками как и в IDEA CE. Разве что заново потребовалось указать scala SDK. На этом этапе удалил, да еще и скачивание через sberid, не вижу смысла.


    1. ris58h
      17.07.2024 08:39
      +2

      Какие отличия вы ожидали? Это ж IDEA CE с кучкой бесплатных плагинов и несолькими сберовскими.


  1. CAJAX
    17.07.2024 08:39
    +3

    С неймингом, конечно, они прогадали. Надо было назвать ZverIDE.