11 марта 2015 в 16:23

Программируем в облаке: обзор популярных IDE

Лет пять назад online IDE были такими себе игрушками, вызывающими дикий восторг у гиков и любителей всего нового. Да, что тут говорить, вероятнее всего, сами создатели таких сервисов не до конца понимали, куда же заведут их стремления и проделанная работа. Все начиналось с банального онлайн блокнота с парой-тройкой менюшек и компилятора для пары-тройки языков. Вообще, довольно-таки интересно наблюдать развитие этого рынка. Так, в 2011 был опубликован обзор облачных IDE, среди которых есть и герои нынешней статьи. Два года спустя появилась еще одна статья со сравнением двух сильнейших игроков рынка — Codenvy и Cloud9. Что ж, на дворе 2015 год, а, следовательно, время для очередного обзора.

Героев обзора выбирали не случайно. Помог и Google поиск, а также частота упоминаний на тематических форумах. Итак, встречайте — Codenvy, Cloud9, Koding и Nitrous. Порядок совершенно произвольный, кто лучше, а кто хуже — решать каждому. Мы лишь пробежимся по основным фишкам и попробует спрогнозировать вектор будущего развития вышеупомянутых сервисов.

Codenvy

https://codenvy.com



Если обратиться к статье Программирование в облаке: Небольшой обзор Онлайн-IDE, то в Codenvy узнаем eXo IDE. За пять лет изменилось многое, если не все. Новое поколение IDE разительно отличается от себя же 2-3-летней давности. Коротко и по пунктам:

  • архитектура предполагает расположение различных сервисов на выделенных серверах, то есть сборка проектов (если это Java) проистекает на отдельном сервере с предустановленными Maven и Ant. Билд артефакты копируются на runtime сервер, сердцем которого стал Docker.
  • благодаря Docker-у, приложение запускается в изолированном контейнере. Пользователю предоставляется возможность собирать образы из своих Dockerfile-ов. Таким образом, Codenvy не ограничиваются предоставлением виртуалки с определенной “осью”. Предустановленные машины собраны на базе Derbian Jessie.
  • поддержка Java. Как и конкуренты, Codenvy уделяет больше внимания тому языку, на котором, собственно, и написан сам сервис. Package view и список использованных библиотек для дерева проекта, подсветка синтаксиса, полноценный code-assistant (привет Эклипсу), показывающий ошибки и предлагающий варианты их исправления, навигация по коду (старый-добрый F4). Maven и Ant на борту. Автоматическое обновление зависимостей при сохранении build файлов.
  • открытый исходный код. Codenvy шагает в объятия Eclipse, а собственный SDK потихоньку перекочевал в проект Eclipse Che.
  • поддержка Git, удобный Datasource плагин, CodeMirror с его плюшками, Google App Engine плагин, возможность сделать pull request в GitHub репозиторий прямо из воркспейса (новый “бранч”, “форк” и “пулл-реквеcт” делаются автоматически).




Codenvy также уделяют внимание вопросу клонирования окружений, когда в 1 клик можно поделиться проектом вместе с его окружением и настройками. По сути, чтобы попробовать Codenvy вовсе не нужно регистрироваться. Проектом можно поделиться с помощью вот такой кнопки, которую Codenvy называет Factory:

image

Из недостатков отметим следующее:

  • отсутствие поддержки скриптовых языков. Code autocompletion для PHP, Python, Ruby нет. Плагины для этих языков отданы на откуп community.
  • ограничение по ресурсам и времени раннера. Для бесплатных аккаунтов выставлено ограничение в 1 час, после чего Docker контейнер останавливается и удаляется. На данный момент машины не сохраняются, а воссоздаются заново
  • отсутствует синхронизация файлов, то есть изменения, сделанные в runtime никак не отобразятся на дереве проекта. Судя по постам техподдержки Codenvy, последние 2 проблемы активно решаются.


Выводы

Что ж, Codenvy, похоже нашли свою аудиторию. Eclipse Che и решения для enterprise клиентов (Codenvy предлагается в on-premises версии, то есть установить сервис можно на своем железе или виртуалке) — чем не заявления о взрослости проекта?

Cloud9

https://c9.io



Следующий герой обзора также прошел длинный и непростой путь. Во многом отличаясь от Codenvy, Cloud9 продолжают гнуть свою линию, планомерно развиваясь в выбранном векторе. Если Codenvy — это Java, то Cloud9 — это, безусловно, JavaScript. Кто на чем пишет, как говорится. К слову, компания недавно выпустила Beta версию SDK.

Плюсы Cloud9:

  • полновесная поддержка JavaScript, PHP, Python. Тут и авто-дополнение кода, подсветка ошибок, режим отладки, навигация по коду, поиск файлов, функций. Словом, для скриптовых языков работа проделана хорошая
  • возможность подключения к FTP, а также SSH подключение к серверам. Так, например, можно поднять машину на Digital Ocean или Amazon, и “подконнектиться” туда из Cloud 9 воркспейса. Таким образом, пользователю предоставляются все плюшки редактора и “моща” поднятой “инстансы”:



  • sudo доступ к виртуальной машине. Настроить окружение под себя довольно просто (из коробки предлагается Ubuntu). Машины поднимаются тем же Docker-ом на инфраструктуре Google Cloud
  • svn, git уже предустановлены на машине
  • collaboration режим со встроенным чатом
  • набор встроенных билд систем для скриптовых языков


Недостатки

  • хоть Cloud 9 и не позиционируют себя как Java IDE, поддержки Java не хватает. Существующий code autocompletion — явно не то, что хотел бы видеть Java разработчик
  • ограничения бесплатного аккаунта. Ну, без этого никуда


Выводы

Отличный выбор для JavaScript девелоперов. Хороший редактор, множество “хоткеев”. Стабильное развитие компании на протяжении многих лет, активное развитие. Без сомнения, стоит ожидать новых фишек и интересных обновлений.

Koding

https://koding.com



Это имя все чаще упоминается на тематических форумах. Несмотря на минималистический дизайн, Koding предлагает простые, но эффективные решения. Вы не увидите привычных менюшек IDE. Редактор и терминал — вот, что нужно разработчику.

Плюсы Koding:

  • быстрое “поднятие” виртуальной машины. При этому, не нужно выбирать, что вам нужно в этой машине. Там будет все. Такое вот решение. PHP, Python, Java, Ruby, Perl, Java удалось обнаружить сходу. Недостающие сервисы и софт можно установить руками.
  • Git и SVN доступен из коробки
  • доступ к виртуальной машине по SSH. Присутствует короткий туториал по подключению
  • collaboration режим c функциями watch (создается реплика воркспейса) и kick (пользователя можно принудительно удалить из сессии)
  • собственный пакетный менеджер + туториалы по установке самых популярных пакетов + возможность устанавливать пакеты под sudo


Недостатки

  • в силу уж очень минималистического дизайна сложно сходу разобраться, как начать работу, особенно для девелоперов, привыкших к классическому layout меню и табов в Eclipse и IntelliJ.
  • отсутствие полноценной поддержки Java, хотя, возможно, Koding и не позиционируют себя с этой стороны
  • отсутствие возможности комфортного “деплоя” на PaaS, хоть и присутствует возможность установить утилиты от провайдеров и “деплоить” через командую строку.
  • в отличие от Codenvy и Cloud9, разработка сторонних плагинов не предусмотрена (ну или же информация спрятана где-то в нетрях сайта)


Выводы

Проект довольно интересный, но по развитию отстает от первых двух героев обзора. Вместе с тем, импонирует простота создания VM и отсутствие “bells and whistles”, то есть ненужных украшательств, не несущих реальной практической пользы.

Nitrous

https://www.nitrous.io



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

Плюсы:

  • шустро поднимается виртуальная машина. Пользователь самостоятельно выбирает стэк. Предлагается PHP, Ruby, Node.js, Go, Meteor.
  • SSH доступ к виртуальной машине
  • десктоп приложение для под Windows и Mac c помощью которого можно работать с оффлайн редактором (например, Sublime) и управлять виртуалкой. Проекты, помещенные в определенную директорию на локальной машине, автоматически синхронизируются с облаком.
  • удобный интерфейс для установки пакетов. Достаточно просто ввести имя пакета и нажать Install
  • code assistant для скриптовых языков


Недостатки:

  • немного неудобный интерфейс для запуска сервисов. Конечно, можно все делать руками в терминале, но все же, предложенный UI не совсем интуитивный
  • не совсем понятна политика по портам. Предлагается превью приложений на сескольких портах, и как быть, чтобы использовать не-кастомные, непонятно.
  • возможно субъективно, но дизайн редактора и воркспейса в целом выглядит странновато.
  • отсутствуют готовые решения для деплоя на PaaS. Вместо этого предлагаются command line решения, с самостоятельной установкой пакетов и утилит.


Выводы

Абмициозный проект, который будет интересен PHP, Python и JavaScript девелоперам. Десктопное приложение — очень хорошее решение, как связать десктоп и облако.

Вместо Итогов

Критиковать онлайн IDE можно и даже нужно. Больше критики — больше стимула для развития. И во многом эта самая критика и сделала вышеупомянутые IDE тем, чем они есть на сегодняшний день. Кто-то нацелен на Java и enterprise сегмент рынка, кто-то старается сделать жизнь JavaScript, PHP и Python разработчиков проще и веселее. В любом случае, идея кодить с Chromebook или слабенького ноутбука, имея при этом неплохой редактор и удаленную Linux машину, имеет право на жизнь. Посмотрим, что будет через несколько лет.
@ivantsoft
карма
8,0
рейтинг 0,0
Самое читаемое Разработка

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

  • +8
    Создалось впечатление, что название статьи стоило бы назвать «Программируем в облаке: обзор популярных IDE с точки зрения java програмиста».
    Сам пользуюсь cloud9, именно для javascript.
    • 0
      А почему Cloud9, а не локально на ноуте все делать? Я вот поглядываю на C9, но не знаю, чем это лучше локального решения.
      • 0
        Если у Вас всегда ноут с собой, то ничем
      • –2
        а потому, что кодить есть возможность только на работе, и работодатель будет не в восторге не только установив я на рабочий комп инструменты разработки, но и узнай он вообще чем я занимаюсь =)
  • 0
    у Microsoft тоже вроде бы есть онлайн IDE
  • +1
    К сожалению, автор забыл упомянуть о не мне прекрасной облачной IDE codio.com. Не сочтите за рекламу, но я считаю, что это тоже достойный игрок рынка.
    • 0
      спасибо, возможно добавлю чуть позже. действительно, стоит упоминания.
  • +1
    Уже несколько месяцев использую cloud9 в разработке(~5 параллельных проектов: php, js, node.js), решил пересесть в облако когда появилась необходимость параллельного использование нескольких осей без виртуалок(виртуалки используются для другого) — несколько ноутов, на всех открыт один проект в облаке, доступ в реальном времени, а так же для удобной передачи результата работы заказчику(по завершению работы просто открываю доступ к исходникам).
    Из плюсов:
    1. Как и любое облако — доступно пока есть интернет, ноут может вырубиться, ось слететь, но исходники всегда где-то там.
    2. Быстрая работа самой виртуалки: рестарт, выполнение команд в консоли, запуск/остановка сервисов
    3. Довольно удобный и быстрый, хорошо настраиваемый интерфейс
    4. Live preview, да пока еще забагованый, но иногда очень помогает
    5. Просмотр результата работы через встроенный браузер с возможностью переключения браузера(chrome, safari & etc.) и устройства(ios, android & etc.)


    Из минусов:
    1. Автодополнение работает крайне странно и не предсказуемо, так же нет возможности указать библиотеки из которых черпать данные для него(например, подключаем с cdn three.js и нельзя(можно?) получить данные к функциям и методам данной библиотеки среда в этом случае считает все их упоминания в коде undefined)
    2. Консоль js даже для страницы запущенной во внутреннем браузере не выводить ошибки и console.log(), для этого приходится открывать дополнительно developer tools браузера, что сильно сказывается на размерах рабочего пространства.
    3. Временами при быстром кодинге + сохранении происходит баг когда отображаемый в редакторе код не соответствует сохраненной версии — бывает крайне редко, но имеет место.

    В целом преимуществ, особенно для работы фрилансером, в подобном решении я вижу больше чем отрицательных моментов.
  • +1
    Я конечно понимаю что тут уклон в сторону Java. Но как-то хотелось бы так же сравнить visualstudio online по базовым фичам(ну разумется не по уровню поддерюки java/c#) с вышеперечисленными продуктами.
  • 0
    Когда при открытии статьи взгляд упал на скрин Codenvy, то первой была мысль, что Jetbrains свою Idea в облако засунули.

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