Неделю назад JetBrains объявили о релизе Projector -- инструмента, который позволяет запускать IDE JetBrains на удаленных серверах даже без графической оболочки, в том числе и прямо в Docker-контейнерах, и в WSL. Доступ к IDE затем осуществляется через браузер или нативный клиент. Код полностью открытый.
https://blog.jetbrains.com/blog/2021/03/11/projector-is-out/
Я так понимаю, что при помощи этого инструмента JetBrains в основном пытаются решить проблему работы IDE в таких "необычных" окружениях, как Windows Subsystem for Linux (WSL). IntelliJ IDEA (и все производные от неё редакторы, такие как PyCharm) -- это полноценные десктопные GUI приложения, написанные на Java, которые вообще-то не так-то просто разделить на сервер и клиент, и запускать в безграфических окружениях. Так было испокон веков, и вряд ли возможно за какой-то вменяемый промежуток времени сильно поменять эту архитектуру. Несколько лет назад Microsoft релизнула WSL, что позволило многим разработчикам взять лучшее от двух миров -- графическую оболочку от Windows и весь тот невероятный набор тулинга, который нормально работает только под Linux, к сожалению. Из-за деталей реализации WSL (грубо говоря, это как удаленный сервер на линуксе, который работает прямо внутри винды, но доступен по сети), для комфортной работы в таком режиме нужна специальная поддержка удаленных серверов со стороны IDE. VS Code прям сразу смогла поддержать такой режим работы (потому что это изначально клиент-серверное приложение), а вот JetBrains попали в очень неловкое положение -- поддержать такой юзкейс обязательно надо, потому что WSL пользуются все больше людей, но легко этого не сделаешь. С каждым новым релизом они фиксят различные мелкие проблемы и улучшают поддержку, но это все равно остаётся IDE, запущенная на винде, которая пытается работать с "удалённым" сервером на линуксе по сети, из-за чего постоянно случаются какие-то тормоза, а индексация больших проектов может занимать долгие часы. При помощи Projector редактор запускается прямо на удаленном сервере, так что все тяжёлые процессы, типа индексации проекта, будут выполняться прямо там, а юзеру по сети транслируется лишь графический интерфейс, что должно в целом улучшить скорость работы.
Пока что это всё ещё выглядит как костыль и полумера, но я надеюсь, что в будущем Projector как-то более плотно интегрируется в IDE (например, IDE сможет сама разворачивать себя же на удаленном сервере через Projector и становиться "тонким клиентом"), и мы получим такой же приятный опыт работы с WSL как и в VS Code -- в стиле "нажал кнопку и поехали".
#jetbrains
Post #55
104