Программируем в облаке: обзор популярных 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т» делаются автоматически). [embedded content]
Codenvy также уделяют внимание вопросу клонирования окружений, когда в 1 клик можно поделиться проектом вместе с его окружением и настройками. По сути, чтобы попробовать Codenvy вовсе не нужно регистрироваться. Проектом можно поделиться с помощью вот такой кнопки, которую Codenvy называет Factory:
Из недостатков отметим следующее:
отсутствие поддержки скриптовых языков. 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 воркспейса. Таким образом, пользователю предоставляются все плюшки редактора и «моща» поднятой «инстансы»: [embedded content]
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 машину, имеет право на жизнь. Посмотрим, что будет через несколько лет.