Наступил конец года и вместе с ним завершается наш цикл статей. Команда Spring АйО рассмотрела некоторые последствия ухода Ultimate IDEA из РФ и как с этим теперь жить. Давайте коротко перечислим итоги каждой части, посмотрим, что мы пропустили, а также попробуем представить, как бы выглядело идеальное решение.

Платформа IntelliJ 

Как многие уже знают, Ultimate IDEA = Community IDEA + плагины. В первую очередь мы любим IDEA за первоклассную поддержку Java/Kotlin с множеством рефакторингов, удобный VCS клиент, прекрасную навигацию по коду и проекту, а также огромное количество плагинов на любой вкус. Отсутствие многих плагинов мы рассмотрим чуть позже. А вот от IDEA как таковой нам отказываться не придется. Мы рассказали, как собрать IntelliJ IDEA самому, если потребуется. Более того, уже существуют как минимум 2 российские сборки (об этом в конце).

Задача технически реализуемая, но имеет некоторое количество сложностей, которые нужно решить, чтобы иметь возможность легально использовать такую сборку на территории РФ. Часть компонентов, которая используется во время сборки, имеет лицензионные ограничения, поэтому их необходимо заменить. А еще было бы неплохо убрать отправку статистики на сервера JetBrains и другие сетевые обращения.

Spring

Для Java разработчиков одной из самых важных функций Ultimate была поддержка Spring Framework. Мы разобрали несколько решений, включая альтернативные IDE. Что ж, привычка дело серьезное и отказаться от IDEA не вышло. И, к счастью, незачем. Наш фаворит – плагин Amplicode, который работает поверх IDEA от любого вендора и привносит много новых полезных фич.

Http Client

Третья вещь, к которой привыкли пользователи Ultimate – это HTTP Client от JetBrains. Он выгодно отличается от других инструментов и решает сразу несколько задач: ручное тестирование API; автоматическое тестирование API, интеграционные тесты; исследование стороннего API. Важным преимуществом HTTP Client от того же Postman является большая гибкость и удобный UX, позволяющий генерировать запросы на свои эндпоинты буквально в 2 клика. 

На момент написания той части статьи не было адекватной замены этого плагина прямо в IDE. Но индустрия не стоит на месте даже в масштабе одного месяца! В вышеупомянутом Amplicode вышел свой HTTP Client под названием Connekt. Разработчики предупредили, что эта часть продукта находится в стадии Preview, но уже можно сказать, что выглядит это очень амбициозно и даже круче, чем оригинальный HTTP Client от JetBrains.

Повторять выводы статьи мы не будем, но оставим для читателей ссылку на нее.

Database Client

С одной стороны, это самая сложная часть для замены. С другой стороны – самая простая. Решения сомнительного качества, вроде Database Navigator, заставляют задуматься: «А всегда ли оправдано встраивание инструмента в IDE?». Конкретно в этом случае лучше воспользоваться сторонними инструментами, которые хорошо выполняют работу, для которой  предназначены, чем теми, которые делают ее плохо, но «зато не нужно переключать окна». 

Для замены Database Client можно воспользоваться несколькими решениями:

  • Поднимаем какой-нибудь web-клиент конкретно для своей БД в docker compose. Вполне неплохое решение, так как это позволит один раз его настроить для своей БД и использовать единообразно всей командой.

  • Используем сторонний профессиональный инструмент, вроде DBeaver. Его плюс – поддержка огромного количества различных баз данных. Минус – поддержка некоторых БД, включая Mongo, входит в платную Enterprise версию. Тем не менее, сейчас это один из лучших инструментов для работы с базами данных.

Но это еще не все

Поддержка Docker

Помимо Ultimate IDEA мы также потеряли возможность легально использовать еще другие инструменты, что можно было заметить не сразу. Среди них – плагин для работы с Docker. На данный момент замены для него нет. Насколько велика эта потеря? 

А потеряли мы не так много: подсветку синтаксиса в Dockerfile и возможность запуска Docker и docker-compose из IDE. Это действительно неприятно, буквально нет альтернативы для IDEA, но пережить можно. В конце концов, каждый уважающий себя разработчик должен уметь запускать docker из консоли.

Маркетплейс

На этом, к сожалению, наши потери не заканчиваются. Некоторые плагины скачать с российского IP-адреса тоже не представляется возможным. К счастью, для многих из них открыты исходники, поэтому остается только пересобрать их (но кто будет это делать).

Но и это не последняя проблема, настигшая российский рынок. JetBrains не позволяет разработчикам из РФ выкладывать плагины в свой маркетплейс. Всегда остается опция ручной установки через ZIP или добавление альтернативного репозитория плагинов. Но это дополнительное усложнение пользовательского пути, что негативно повлияет на конверсию в установку.

А что с другими языками?

Вместе с Ultimate IDEA мы потеряли все остальные платные продукты JetBrains, в которых поддерживались другие языки, такие как Go, Rust, TypeScript и JavaScript. Мы не затрагивали эту тему раньше, однако она наверняка волнует разработчиков, которые писали на этих языках и привыкли к продуктам JetBrains. Первое решение (легальное), которое приходит в голову, – пересесть на другую IDE, которая поддерживает LSP (Language Server Protocol), например, VS Code. 

Здесь хочется сказать пару слов про этот протокол. Базовая идея заключается в том, чтобы стандартизировать взаимодействие между редактором кода (или IDE) и сервером, предоставляющим подсказки, автодополнение, диагностику ошибок и другие возможности. LSP позволяет разработчикам использовать одну и ту же базовую поддержку языка в разных IDE и редакторах. Конечно, это не даст такой же уровень языковой поддержки, который был в IDEA. Но, местами, он может быть даже выше. Попробуйте вызвать рефакторинг переименования в VS Code и WebStorm.

И тут нас ждет 2 новости. А точнее, 3, но об этом – в конце. Первая, как обычно, хорошая). Для IntelliJ IDEA есть бесплатный открытый LSP-клиент от RedHat lsp4ij, что, в теории, позволяет получить поддержку в IDEA любой язык, для которого есть реализация LSP-сервера. Вторая – на данный момент этот плагин сыроват и приводит к фризам IDE.

Идеальный инструмент?

Отличная новость прогремела на Хабре на прошлой неделе – анонсирована разработка российской сборки IntelliJ IDEA под названием OpenIDE. Не будем пересказывать содержание статьи, но отметим некоторые ключевые моменты.

OpenIDE — это лицензионно чистая сборка IntelliJ IDEA CE с открытым кодом, имеющая собственный маркетплейс и не обращающаяся к ресурсам JetBrains. Инструмент разрабатывается совместно 3 российскими компаниями: Группой Астра, Haulmont и Axiom JDK. 

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

Кроме того, авторы дали нам надежду, что долго без поддержки Docker мы не просидим, так как она была анонсирована в OpenIDE. Как мы сказали выше, без нее жить можно, но, согласитесь, гораздо приятней, когда она есть.

Ну и, конечно, был упомянут тот же LSP-клиент от RedHat. Очень надеемся, что разработчики OpenIDE займутся поддержкой этого плагина и доведут его до ума.

И напоследок, в OpenIDE будет встроен Amplicode, которые закроет российским разработчикам потребность в инструменте для разработки на Spring Boot. Также в статье было сказано, что часть функциональности Amplicode будет бесплатной навсегда.

Разработчики обещают удобный способ установки Axiom JDK прямо в OpenIDE. Звучит неплохо. Вспомните, когда вы последний раз устанавливали Java не через IDE?

А для работы с репозиториями исходных кодов будет разработана интеграция с GitFlic – российской платформой для работы с кодом.

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

Итоги

Жить без IntelliJ IDEA можно, но совсем не обязательно. Глупо отрицать, что Ultimate IDEA – безусловный лидер среди IDE. Однако отсутствие доступа к нему открыло перед нами новые пути и заставило взглянуть на альтернативные решения.

Разработка OpenIDE, появление инструментов вроде Amplicode показывают, что даже в сложных условиях разработчики из РФ могут продолжать свою работу эффективно и без перебоев. Важно сохранять гибкость, адаптироваться к изменениям и находить новые подходы, чтобы двигаться вперед.

Мы уверены, что в 2025 году мы получим больше, чем потеряли. С наступающим Новым Годом!


Присоединяйтесь к русскоязычному сообществу разработчиков на Spring Boot в телеграм — Spring АйО, чтобы быть в курсе последних новостей из мира разработки на Spring Boot и всего, что с ним связано.

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


  1. alex_k777
    24.12.2024 13:56

    Никак, берем VPN, скачиваем IDEA и пользуемся. Для меня лучшего и удобного редактора, чем PHPStorm нет. Другие не понравились.


    1. vic_1
      24.12.2024 13:56

      А потом ваш впн начинает конфликтовать с рабочим и вы курите бамбук


      1. alex_k777
        24.12.2024 13:56

        с чего это, у меня openVPN ни с кем не конфликтует


      1. DarkTiger
        24.12.2024 13:56

        Сейчас решений для обхода ограничений ИТ-служб имеется чуть больше, чем вагон и маленькая тележка.

        Приходилось видеть вариант, когда уставшие от креатива ИТ разрабы брали инет через б/у телефон с VPN и клали болт на все корпоративные политики одним махом. А при редкой необходимости залезть в корпоративный интранет просто переключали сеть в настройках


  1. dunmaksim
    24.12.2024 13:56

    TL;DR:

    • GNU Emacs

    • VIM

    • Neovim

    • VS Code (спорно)


  1. ant1free2e
    24.12.2024 13:56

    воспользоваться сторонними инструментами для работы с СУБД


  1. vic_1
    24.12.2024 13:56

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


  1. leksej
    24.12.2024 13:56

    Ещё существует такая ide как eclipse, но почему-то её мало кто вспоминает


    1. AbitLogic
      24.12.2024 13:56

      К Eclipse сложно применить термин lightweight, там фраза "там поменять в одном месте константу, один момент" не работает

      CubeIDE у ST на ней сделан, можно вечно смотреть как она открывает проект и переключает с ioc на исходный код...


  1. funny_falcon
    24.12.2024 13:56

    Kate довольно хорошо умеет LSP. Правда, сам по себе не всегда удобный и стабильный.

    Консольный Helix тоже умеет хорошо LSP и TreeSitter. Он шустрый и стабильный. Но система движения не всегда удобная (post-vim).