Инструменты пользователя

Инструменты сайта


wiki:programmirovanie:redaktory_i_ide:sravnenie_nekotoryx_ide

Сравнение некоторых 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!

Примечания.

  1. Многое зависит от установленных в IDE плагинов. Это касается и работы по sftp и ssh.
  2. Комфортность - понятие субъективное и не оценивалось.
  3. Термин «Проект» - условный и зависит от конкретной IDE.
    В Atom, NetBeans, Eclipse - это просто структура каталогов на локальном компе, например, «проект1/проект2/проект3».
    В Komodo - это файл сохраненного на локальном компе проекта с расширением «.komodoproject».
    В VSCodium (VSCode) - это «Workspace»
  4. 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.»
  5. Соединения с «лишними» серверами интернета локального компа:
  • 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)
wiki/programmirovanie/redaktory_i_ide/sravnenie_nekotoryx_ide.txt · Последнее изменение: 2022-11-10 11:51 — nik

Если не указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: GNU Free Documentation License 1.3
GNU Free Documentation License 1.3 Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki