Сравнение некоторых IDE
После продолжительного использования Komodo Edit и частично Komodo IDE возникла необходимость в дополнительном функционале редактора или IDE (далее просто IDE).
Захотелось в IDE иметь возможность не просто редактировать файлы на удаленном сервере (далее просто сервер), но и выполнять команды на сервере.
Для этого пришлось попытаться сравнить наиболее известные IDE в этом плане.
Рассматриваются IDE с поддержкой протокола SSH и производных от него.
Рассматривается ситуация, когда на удаленном сервере (далее просто сервер) нет «графики», нет GUI-прог.
Т.е. случаи получения удаленного десктопа или проброс Х-ов (X11Forwarding) не рассматриваются.
Для работы с файлами на сервере используются протоколы sftp и sshfs.
Есть отдельная «технология» работы с сервером - запуск на сервере агента (сервера).
Пример такой «технологии» - VSCode.
Работа по протоколам sftp и sshfs имеют свои плюсы и минусы. Кратко.
sftp (схожие протоколы: ftp, ftps)
Это протокол обмена (копирования) файлами, каталогами.
Работа с файлами и каталогами на самом деле происходит с копиями на локальном компе. Синхронизация с сервером может происходить автоматически (IDE отслеживает локальные изменения), либо в ручном режиме через запуск синхронизации в IDE.
- Плюсы:
- режимы синхронизации (в некоторых IDE нет синхронизации именно тех файлов, с которыми в данный момент работает IDE)
- относительно малая нагрузка на сеть (только на время синхронизации, но зависит от объема локальных копий)
- наличие локальных копий каталогов и файлов - Минусы:
- режимы синхронизации (в некоторых IDE нет синхронизации именно тех файлов, с которыми в данный момент работает IDE
- наличие локальных копий каталогов и файлов (да-да, их объем может быть значителен!)
sshfs
Это монтирование каталога или каталогов сервера в файловую структуру ОС локального компа.
Примонтированный каталог становится частью файловой структуры локальной ОС.
Очень удобно использовать sshfs вместе с autofs. Для монтирования в пользовательском пространстве в Linux используется fuse.sshfs.
При этом, примонтированный каталог становится доступным для программ локального компьютера.
- Плюсы:
- работа с каталогами и файлами сервера практически любых прог, установленных на локальном компе (например, qgit) - Минусы:
- есть риск потери изменений при обрыве соединения с сервером
- сильная зависимость от пропускной возможности сети и, как следствие, замедление «отклика» (например, qgit)
Общий плюс для sftp и sshfs - «чистая» работа. Т.е. IDE не создает на сервере каталогов и файлов нужных для работы самой IDE.
Работа IDE с сервером через запуск агента (пример VSCode) требует установки и запуска дополнительного софта (агента) на нем!
Критерии и сравнение.
| Atom | Eclipse | Komodo | NetBeans | VSCodium (VSCode) | VSCode | |
|---|---|---|---|---|---|---|
| Дополнительные плагины | ||||||
| Управление проектами в самой IDE | «Project Manager» | |||||
| Подключение по sftp | «Remote FTP» | «Remote System Explorer End-User Runtime» | «SSH FS» | |||
| Подключение по ssh | «Remote System Explorer End-User Runtime» | «SSH FS» | ||||
| Монтирование каталога сервера в локальную ОС по протоколу sshfs | «SSH FS» (по описаниям, см. ниже в Дополительно) | |||||
| Запуск агента на сервере | «Remote Development» | |||||
| Сохранение отдельных настроек | ||||||
| Сохранение списка редактируемых файлов | файл проекта с расширением «.komodoproject» | |||||
| Сохранение настройки подключения к серверу | файл проекта с расширением «.komodoproject» | файл с расширением «.code-workspace» | ||||
| SFTP | ||||||
| Область настроек подключений к серверам по sftp | для проекта, файлы «.ftpconfig» и «.ftpignore» | для IDE | для IDE + файл проекта («.komodoproject») | для проекта | для IDE | |
| Автоматическое подключение при запуске IDE | при запуске сохраненной рабочей области | последний рабочий либо сохраненный проект | последняя рабочая область либо файл с расширением «.code-workspace» | |||
| Место хранения локальных копий файлов | в каталоге проекта | в каталоге проекта | где-то в кеше | в каталоге проекта | где-то в кеше | |
| Синхронизация локальных копий файлов при запуске IDE | ручная | ручная | автоматическая | ручная | автоматическая | |
| SSH | ||||||
| Область настроек подключений к серверам по протоколу ssh | для IDE | для IDE | объединение для IDE и рабочей области | |||
Запуск агента на сервере.
Плагин «Remote Development» только для VSCode.
На сервере в корне домашнего каталога пользователя автоматически создается каталог «.vscode-server» (агент) и файл «.wget-hsts».
При первом подключении к серверу появляется дополнительный диалог настроек подключения.
При последующих подключениях автоматически запускается агент и открывается доступ к каталогам и файлам сервера.
Настройки подключения к серверу берутся из «~/.ssh/config» и «/etc/ssh/ssh_config» локального компа и где-то хранятся в VSCode.
Так же можно указать другой файл настроек подключения к серверу.
Команда «Remote-SSH: Uninstall VS Code Server from Host» удаляет каталог «.vscode-server» на сервере (файл «.wget-hsts» остается).
Developing on Remote Machines using SSH and Visual Studio Code
Дополительно.
- Atom
Со временем на локальном компе соберутся все файлы что были даже просто просмотрены.
Возможны трудности с переключением раскладки клавиатуры по клавишам Alt+Shift. - Eclipse
Со временем на локальном компе соберутся все файлы что были даже просто просмотрены. - Komodo
Локальный кеш видимо надо чистить ручками. - NetBeans
Со временем на локальном компе соберутся все файлы что были даже просто просмотрены. - VSCodium
Нет плагина «Remote Development» (может это и плюс).
В реальности он работает не по sshfs, а по sftp!
Примечания.
- Многое зависит от установленных в IDE плагинов. Это касается и работы по sftp и ssh.
- Комфортность - понятие субъективное и не оценивалось.
- Термин «Проект» - условный и зависит от конкретной IDE.
В Atom, NetBeans, Eclipse - это просто структура каталогов на локальном компе, например, «проект1/проект2/проект3».
В Komodo - это файл сохраненного на локальном компе проекта с расширением «.komodoproject».
В VSCodium (VSCode) - это «Workspace» - VSCodium
«VSCodium is a community-driven, freely-licensed binary distribution of Microsoft’s editor VSCode»
«Microsoft’s vscode source code is open source (MIT-licensed), but the product available for download (Visual Studio Code) is licensed under this not-FLOSS license and contains telemetry/tracking.» - Соединения с «лишними» серверами интернета локального компа:
- VSCodium
74.125.205.198 Organization: Google LLC (GOGL)
76.76.21.21 Organization: Vercel, Inc (ZEITI) http://vercel.com 76.76.21.21 AS16509 Amazon.com, Inc.
198.41.30.195 EclipseFoundationInc - VSCode
51.144.164.215 Microsoft Limited
13.107.13.93 Organization: Microsoft Corporation (MSFT)
13.107.42.18 Organization: Microsoft Corporation (MSFT)
