Обзор облачных IDE
Рубрика: Обзоры -> Программирование -> Журнал Хакер -> Статьи
Метки: cloud | ide | программирование
Просмотров: 11680
Применение облачных IDE в корне меняет устоявшийся за годы процесс разработки программного обеспечения. Разработчику больше не нужна (в идеале) куча программ, между которыми требуется налаживать связь, которые необходимо обновлять и с которыми приходится выполнять другие рутинные действия. Но увы, мир облачной разработки еще нельзя назвать идеальным. Здесь есть свое черное и белое.
Так ли безупречны облачные IDE
Для начала поговорим о светлой стороне. Что принципиально нового нам несут облачные технологии и IDE в частности? В первую очередь — смену устоявшихся паттернов. Для работы необходим только браузер и ничего больше. Ни версия ОС, ни отсутствие специализированных библиотек в системе не способны помешать работе. Браузер в этом мире играет роль главного проводника. Сейчас он мощная среда разработки, а через пять минут превращается в крохотный редактор регулярных выражений.
Отношение к аппаратным ресурсам меняется аналогичным образом. Гонка производительности может быть ненадолго прервана, так как главным потребителем ресурсов становится опять-таки лишь браузер. Снабжать ресурсами мощную среду разработки и все связанные с ней компоненты будет кто-то другой. Получается, наиболее вескими аргументами «за» в отношении миграции в облако будут:
Минусы облачных IDE
Положительных сторон облачного кодинга немало, но и минусов, увы, хватает. Самый главный из них — безопасность. Да, когда исходный код проектов доступен в любой точке мира — это круто, но все мы помним печальную историю с популярным ныне облачным сервисом Dropbox.
Из-за ошибки разработчиков злоумышленники могли получить беспрепятственный доступ к любому из аккаунтов пользователей. Представляешь, какие проблемы могут возникнуть, если такая ситуация случится с IDE, в которой располагаются рабочие проекты? Мало того что исходники могут попасть в чужие руки, так еще и в мгновение ока ты можешь потерять доступ к результатам своего труда.
Несомненно, разработчики подобных продуктов следят за тенденциями в области защиты и отражения новых хакерских атак, но всем известна простая истина (читателям нашего журнала особенно): чем больше программа, тем больше в ней ошибок. От ошибок не застрахованы даже облака. Не совсем гладко обстоят дела с устойчивостью решений к сбоям и внезапным падениям. Производители сервисов дразнят покупателей хорошим аптаймом, но на деле он не всегда так хорош. Gmail, Dropbox, Google Docs — в истории каждого популярного облачного решения были замечены внезапные падения. Недоступность ресурсов хоть и составляла не больше двух часов, но что, если именно в эти два часа тебе нужно срочно получить доступ к файлам проекта? Я сомневаюсь, что работодателя/клиента, которому срочно требуется исправить ошибку в программе, устроит ответ: «извините, но наше облако сейчас недоступно и мы никак не можем решить вашу проблему».
Один из самых распространенных мифов облачных технологий — дешевизна. По своему опыту могу сказать, что облачное решение порой обходится дороже, чем покупка полноценного программного продукта. Аренда дешева, пока не требуется от нее отказываться и озадачиваться миграцией на альтернативное решение. Рассказывая о преимуществах облачных IDE, я сделал особый акцент на возможность работы из любого места, главное, чтобы был интернет и установлен современный браузер. Это реально крутая возможность, но давай рассмотрим обратную сторону медали. Если ты привык работать в разъездах, то для тебя не станет открытием проблема с доступом к Сети в небольших городах.
Стоит отправиться в командировку в такой город, как сразу начинаешь понимать, почему облачные технологии еще долго не смогут вытеснить полноценные приложения. Зачастую качество доступа к Сети оставляет желать лучшего.
Другой немаловажный минус абсолютно всех облачных продуктов — отсутствие возможности безболезненной миграции на альтернативные решения. Рано или поздно облачный продукт может прекратить свое существование и тебя с твоими проектами попросят покинуть виртуальное пространство. Вот тут и начнется самое интересное. Как безболезненно мигрировать на альтернативное решение?
Clound9
Условия использования: Free (один приватный репозиторий) / Share
Стоимость платной подписки: 12 долларов в месяц
Поддерживаемые языки программирования: JavaScript, PHP, Python, Ruby, HTML, CSS
Система контроля версий: Git
С9.io — если не лучшая, то уж точно одна из лучших облачных IDE, нацеленная в первую очередь на Node.JS-разработчиков. В начале развития проекта многих девелоперов настораживало отсутствие поддержки актуальных версий Node.JS, но сейчас, когда базовый API Node.JS устаканился, доступная по умолчанию версия рабочего окружения более-менее догнала реальность (v0.8.9). С9 поражает своей продуманностью, чувствуется, что она создана разработчиками для разработчиков, благодаря чему сделать Get Started невероятно легко. Интеграция существующих или создание новых проектов (как и настройка рабочего окружения) в C9 абсолютно прозрачна. Можно создать новый проект на любой доступной технологии (Node.JS, Django, Rails) или загрузить файлы с локальной машины пачкой — и буквально через пару кликов рабочее окружение будет готово. Есть возможность подключаться к своим файлам по FTP, SSH, а благодаря тому, что C9 предлагает полноценную командную строку, можно внутри директории проекта в облаке полноценно использовать Git так, как если бы это происходило на локальной машине.
Вообще, работа в C9 действительно напоминает работу в полноценной десктопной IDE и даже отличается в лучшую сторону. Подавляющее большинство инструментов разработчика Node.JS (например, npm) ведут себя абсолютно предсказуемо. Так, ты можешь рассчитывать на корректную работу мейнстримового middleware Connect/Express, шаблонизаторов EJS, Jade, поддержку драйверов доступа к базам данных (node-mongo-native, Mongoose ORM, connect-redis), систем авторизации (passport) и даже тех модулей, сборка которых локально сопряжена с некоторыми не всегда корректно обрабатываемыми зависимостями (например, iconv). Поддерживается «умное» автодополнение экспортируемых из модулей функций и переменных. Для исполнения приложений выделяется поддомен вида http://
C9 постоянно развивается, каждый день появляются новые коммиты и вводятся новые функции, фиксятся баги (на момент написания статьи исправлялись ошибки процессинга PayPal). Также к услугам разработчика менеджер расширений, позволяющий в один клик установить популярные дополнения рабочей среды и значительно расширить и без того не бедный функционал этой замечательной IDE.
Единственная проблема C9 — несколько подтормаживающий интерфейс. Из-за обилия AJAX’а и в целом навороченности интерфейса многие операции совершаются со скрипом. Редко, но элементы управления даже зависают в процессе работы, но, как уже было сказано выше, работа над улучшением C9 ведется постоянно.
ShiftEdit
Условия использования: Free/Share
Стоимость платной подписки: 5,99 доллара в месяц или 59,99 доллара в год, есть скидки
Поддерживаемые языки программирования: JavaScript, PHP, Python, C++/C#, HTML, CSS, Go, Perl, Java, Scala — всего 28 технологий
Система контроля версий: нет
Первое, что бросается в глаза при знакомстве с этой IDE, — некая отсталость в интерфейсе и несоответствие текущим трендам в дизайне веб-приложений. Это скорее облачный редактор с подсветкой синтаксиса, чем полноценная IDE. При запуске тебе сразу предлагается выбрать тип документа, с которым ты хочешь работать (к чести ShiftEdit нужно сказать, что доступно 28 диалектов, включая JSON, SVG, LESS). Любителей популярных систем контроля версий сразу ждет разочарование — эта IDE их не поддерживает, а судя по ответу разработчиков, кроме частичной интеграции с SVN больше ничего поддерживать они и не планируют. ShiftEdit позволяет подключаться к своим файлам через FTP, SFTP, WebDAV, Dropbox, Google Drive или Amazon S3. Запускать, как и хранить код, предлагается на своих серверах.
В целом система работает более-менее шустро, однако некоторые функции реализованы на очень низком уровне. Например, автодополнение, о котором разработчики гордо заявляют на промостранице, неприятно удивляет своей топорностью, иногда предлагая выбрать из сотен ключевых слов в ситуации, в которой явно должно быть не более 5–10 вариантов.
Из положительных моментов стоит отметить нормальную проверку и подсветку синтаксиса (вообще, здесь сложно что-то испортить), поддержку тем, WYSIWYG-редактор, «живое» редактирование, ну и всякие полезные мелочи, вроде подсветки текущей строки, обрезания лишних пробелов, автозакрытия скобок и прочего функционала, присущего любому нормальному текстовому редактору.
Кроме снятия ограничения на количество проектов, бизнес-редакция ShiftEdit не предлагает основной массе пользователей ничего такого, за что можно было бы отдать деньги — так, почти за 60 долларов в год ты получаешь историю ревизий кода и улучшенную интеграцию с Dreamveawer.
Codeanywhere
Условия использования: Free/Share
Стоимость платной подписки: 5 долларов в месяц или 50 долларов в год
Поддерживаемые языки программирования: JavaScript, CSS, HTML, XML, PHP
Система контроля версий: Git
Разработчики Codeanywhere уверены, что настоящим программистам для полного счастья не хватает возможности программировать в любом месте и в любое время. Наличие компьютера под рукой значения не имеет. Главное, чтобы при себе был современный гаджет вроде смартфона или планшета и доступ к инету. Все остальное предоставит Codeanywhere.
Целевая аудитория проекта CAW (Codeanywhere) — веб-разработчики, специализирующиеся на создании новых приложений при помощи JavaScript, PHP, HTML и CSS.
Помимо типичного набора для IDE облачного формата вроде легковесного редактора с автодополнением кода и подсветкой синтаксиса, разработчики CAW предлагают полноценную площадку для разработки и тестирования приложений. Доступ к интерпретатору PHP, наличие СУБД MySQL, взаимодействие с системой контроля версий Git, возможность загрузки файлов из облачного хранилища Dropbox, встроенный FTP-клиент — все это ключевые опции CAW. Помимо стандартной браузерной версии, на скамейке запасных у CAW есть нативные клиенты для популярных мобильных платформ (Android, iOS, BlackBerry). Собственно говоря, благодаря им лозунг «Программируй в любом месте, в любое время» оправдывает себя на все сто.
Icenium
Условия использования: Share
Стоимость платной подписки: от 16 до 19 долларов в месяц
Поддерживаемые языки программирования: JavaScript, CSS, HTML
Система контроля версий: Git
Одна из главных проблем, с которой сталкивается каждый разработчик мобильных приложений, — необходимость установки разных IDE и SDK. Что хорошо для разработки под Android, то никуда не годится под iOS.
Разработчики из компании Icenium попытались найти оригинальное решение этой проблемы. В результате появилась новая IDE и технология, адаптирующая инструменты веб-разработчиков (JavaScript, CSS, HTML5) для создания мобильных приложений. С ее помощью весь цикл создания приложения (от прототипа до публикации в App Store / Google Play) выполняется прямо в браузере.
Среда разработки снабжена всем необходимым инструментарием для продуктивной работы. Быстрый доступ к необходимым SDK/фреймворкам (jQuery, Kendo UI Mobile). Достаточно функциональный редактор кода (подсветка синтаксиса, автодополнение, синтаксический контроль). Работа с Git (поддерживаются GitHub, Bitbucket). Наличие встроенных «эмуляторов» Android/iOS и ряд других плюшек, упрощающих процесс разработки.
Интерфейс IDE хорошо оптимизирован. Задержки при вызове той или иной функции минимальны, поэтому создается ощущение, что работаешь с десктопным приложением. Разработчикам Icenium удалось сделать элегантное решение нестандартной задачи. Причем оно интересно не просто как облачная среда разработки, а как полноценная платформа, покрывающая весь цикл создания мобильного приложения (от прототипа до публикации в App Store).
Erbix
Условия использования: Share/Free
Стоимость платной подписки: 14,95–69,95 доллара в месяц
Поддерживаемые языки программирования: JavaScript
Система контроля версий: Git
Внешний вид Erbix кажется слегка устаревшим и не соответствующим современным критериям минимализма и простоты. Тем не менее эта IDE пользуется достаточной популярностью у JavaScript-разработчиков. Помимо тривиальных функций для ПО такого типа, у Erbix имеется возможность публикации созданных приложений в собственный AppStore, а также присутствует поддержка СУБД PostgreSQL. Последняя возможность наиболее интересна: благодаря ей вполне реально создать полноценный блог или другое полезное приложение, которому необходимо где-то хранить промежуточные данные.
Слегка устаревший интерфейс компенсируется стабильностью работы и такими полезными функциями, как взаимодействие с СУБД, поддержка модулей CommonJS и RingoJS.
CodeRun Studio
Условия использования: Free
Поддерживаемые языки программирования: JavaScript, C#, PHP
Система контроля версий: нет
CodeRun Studio — одна из немногих облачных IDE, ориентированная на C#-разработчиков. Чуть позже проект был обновлен, и копилка поддерживаемых языков программирования пополнилась PHP и JavaScript. Как фанат технологии .NET и C# в частности, я был приятно удивлен, что среди проектов присутствуют возможность создавать проекты типа ASP .NET MVC, WPF Browser Application, Silverlight и так далее.
Для C#-проектов поддерживается пошаговая отладка. Работает весьма сносно и для отладки небольшого количества кода встроенного отладчика более чем достаточно. С большими проектами при отладке могут возникнуть проблемы. По непонятным причинам интерфейс намертво замирает, после чего спасает только полная перезагрузка приложения.
Текстовый редактор выполнен в типичном для подобных проектов стиле. Есть автодополнение кода, подсветка синтаксиса, подсказки по функциям, синтаксический контроль, интерфейс с табами.
На этом достоинства IDE заканчиваются, и эстафету подхватывает команда ложек дегтя. Одна из главных проблем проекта — тормоза. Тормозит интерфейс (особенно при сборке решения); периодически отваливается коннект к тестовому серверу; напрочь отсутствует хоть какая-нибудь интеграция с внешними сервисами вроде Git; разработчики очень редко обновляют компиляторы/интерпретаторы.
Проект интересный, но его развитие идет черепашьими шагами. Ошибки и тормоза не позволяют поставить этот проект в одну линию с более сильными игроками рынка. Проект хорош, но только в образовательных целях и мелких проектов.
Akshell
Условия использования: Free
Поддерживаемые языки программирования: JavaScript
Система контроля версий: Git
Бытует мнение, что специализированный инструмент всегда лучше, чем универсальный. Глядя на Akshell, понимаешь, что в этой теории определенно что-то есть. Своему рождению данный инструмент обязан любителям языка программирования JavaScript. Разработчик проекта постарался спроектировать хороший инструмент, способный преодолевать трудности, которые подстерегают собратьев по цеху.
Интерфейс Akshell выполнен в лучших традициях минимализма: ничего лишнего, только самое необходимое. Из кодерских инструментов, присущих всем IDE, Akshell готов предложить: редактор с подсветкой синтаксиса и проверкой ошибок в синтаксисе, менеджер проектов и встроенную консоль для взаимодействия с системой контроля версий Git.
Для знакомства с возможностями Akshell рекомендуется посмотреть демонстрационные приложения, разработанные при помощи этой среды. Их можно найти в официальном репозитории проекта на GitHab’е.
Резюмируя сказанное, мы получаем неплохую реализацию еще одного облачного JavaScript-редактора. Минимализм и скорость работы воодушевляют, но у проекта периодически наблюдаются серьезные проблемы с хостингом. Возможно, это временно. Однако при моем тестировании проблемы имели место быть.
Compilr
Условия использования: Free/Share
Стоимость платной подписки: от 20 до 40 долларов в месяц
Поддерживаемые языки программирования: C, C#, Fortran, PHP, Ruby, Python, VB, Objective C и другие
Система контроля версий: нет
Любителям чистого и неперегруженного интерфейса однозначно придется по душе среда разработки Compilr. Создатели проекта не балуют богатым набором возможностей, а просто предоставляют в распоряжение пользователя в меру функциональный редактор кода и услуги интерпретатора/компилятора. Интерфейс приложения не похож на классические IDE. Здесь нет кишащих кнопками панелей инструментов. Главное меню с кучей возможностей также отсутствует. Вспомогательных инструментов вроде системы контроля версий или отладчика здесь тоже нет. А что тогда есть? Только редактор с подсветкой синтаксиса (функций вроде автодополнения, подсказок нет) и компилятор/сборщик.
Полноценной IDE этот проект назвать нельзя. Функционал настолько прост и беден, что годится разве для совсем небольших проектов. Главная изюминка Compilr — поддержка большего количества языков программирования и компиляторов. Наиболее интересным вариантом использования Compilr мне представляется во время изучения новых языков программирования или когда нужно написать код на малоиспользуемом языке, не устанавливая у себя на компе лишнее программное обеспечение.
Codenvy
Условия использования: Free/Share
Стоимость платной подписки: от 9 до 99 долларов в месяц
Поддерживаемые языки программирования: Java, PHP, JavaScript, Python, Ruby, HTML, CSS
Система контроля версий: Git
Интерфейс Codenvy выполнен в классическом для IDE стиле: куча полезных мастеров, упрощающих рутинные действия; главное меню, напичканное всевозможным функционалом; интерфейс в виде табов; менеджер проектов; интеграция с такими необходимыми вещами, как Git. Сам интерфейс проработан достаточно хорошо. После настольных IDE особого дискомфорта не испытываешь. Все на своих местах. Техническая сторона реализации интерфейса заслуживает особого уважения. Задержки минимальны, и среда ведет себя достаточно отзывчиво.
В Codenvy множество самых разнообразных инструментов. Из наиболее интересных стоит выделить: поддержку Git-хостингов; поддержку большего количества PaaS (AWS Elastic beanstalk, OpenShift, CloudBees, CloudFoundy, AppFog, Google App Engine, Heroku); инструменты рефакторинга; поддержку парного программирования; наличие встроенного отладчика и так далее.
Классический интерфейс в стиле настольных решений, сбалансированный набор инструментов, шустрая работа, интеграция с популярными PaaS-сервисами выделяют Codenvy среди подобных проектов. Огорчает лишь, что данная среда в первую очередь ориентирована на Java-разработчиков. Наиболее интересные функции вроде отладчика и рефакторинга доступны только для Java-проектов.
Возвращаемся на землю
Все рассмотренные в статье решения обладают интересным функционалом и заставляют взглянуть на привычные вещи под другим углом. Уже сейчас мы имеем возможность разрабатывать простые приложения для различных платформ, не устанавливая на своем рабочем месте тяжеловесных приложений. Однако говорить о профессиональном использовании облачных сред разработки все же рано. Минусов у подобных решений хватает, а плюсы не в состоянии перекрыть наработанные годами достоинства настольных решений. Вот и получается, что пока облака лишь инструмент, а не серебряная пуля, которую многие в них пытаются разглядеть.
Не вошли в обзор
[url=https://koding.com/]koding.com — новая реинкарнация проекта славно почившего Kodingen. Среда в первую очередь ориентирована на веб-разработчиков. Поддерживаются языки JavaScript, CSS, HTML, PHP. На момент написания статьи сервис работал в beta-режиме, регистрация была возможна только по инвайтам.
www.eclipse.org — облачная опенсорсная IDE от разработчиков легендарного Eclipse. Поставляется в двух варианта: в виде сервиса и исходных кодов. Если в первом случае Orion не отличается от своих собратьев, то благодаря открытости сорцов пользователь получает возможность развернуть проект в собственной сети (например, на работе) и обеспечить коллег современной средой разработки.
phonegap.com — альтернатива для Icenium. Среда сфокусирована на разработку мобильных приложений под iOS и Android. В основе лежат те же идейные принципы, что и у Icenium, в качестве технологий используется инструментарий веб-разработчиков.
SourceKit — облачная IDE, выполненная в виде плагина для браузера Google Chrome. Все пользовательские данные (скрипты и так далее) SourceKit хранит в пользовательском аккаунте Dropbox. Редактор обеспечит подсветкой синтаксиса для следующих языков программирования: C/C++, C#, PHP, Python, JavaScript.
pythonfiddle.com — простенькая облачная IDE для любителей языка программирования Python. Возможностей минимум, но для тестирования алгоритмов будет в самый раз. goo.gl — Collaborative IDE, когда-то был многообещающий проект, но на данный момент застыл в развитии. По указанному линку ты не найдешь функциональную IDE, зато сможешь загрузить исходники и развернуть среду разработки в своем облаке.
sourceLair — еще одна облачная IDE, выполненная в виде плагина для Google Chrome с громадной поддержкой языков программирования: C, C++, PHP, CSS, JavaScript, Java и других. Связью с внешним миром также не обделена. Умеет взаимодействовать с популярными Git-хостингами Bitbucket, GitHub.
Полезные инструменты для разработчиков
codepen.io — хороший редактор для фронтенд-девелоперов. Главная киллер-фича — возможность одновременного редактирования CSS/HTML/JS-кода. Весь код и результат его выполнения представлен на одном экране. Внесение изменений тут же отражается на результате.
cssdesk.com — CSS-редактор. Поддерживает режим «что ввожу, то и вижу».
jsdo.it — сообщество фронтенд-разработчиков. Сервис позволяет писать и тестировать свой код, а также работать с проектами других участников проекта.
refiddle.com — песочница для тестирования и отладки регулярных выражений.
JS- и CSS-песочницы
Заходя на форумы программистов типа Stack Overflow, можешь быть уверен — в 8 из 10 топиков по JavaScript, HTML или CSS ты встретишь отсылки к этим сервисам. Это — песочницы для тестирования маленьких кусочков CSS- или JS-кода. Конечно, ты всегда можешь создать полноценную страницу для тестирования какого-либо CSS-свойства или поведения функции, но, согласись, удобно написать пару строк кода и видеть результат. Да и живые примеры ньюфагам кидать удобнее :).
jsFiddle — один из самых популярных сервисов, король песочниц :). Имеет очень удобный layout, поддерживает кучу популярных фреймворков и библиотек типа Angular, jQuery, Knockout, Bootstrap. Можно выбрать способ подключения: библиотека может быть описана в head, body, загружена по событию onLoad или onDomRead. Позволяет тестировать AJAX-запросы и имеет отличную документацию.
JS Bin — тоже отличный сервис. Поддерживает все популярные фреймворки, ориентирован на отладку JS-кода. Приятная особенность — рефреш не убивает твои изменения. Единственный минус для меня — отсутствие столь четкого, как в предыдущем сервисе, layout (например, нет отельной области для CSS). В остальном — все на высоте.
Dabllet — милая песочница с симпатичным интерфейсом, подходит только для отладки CSS и HTML, поддержка JavaScript в самой зачаточной стадии. Не рекомендовал бы его для ежедневной работы.
CSSDesk — простой и узкоспециализированный сервис для тестирования HTML и CSS c солидной историей. На протяжении всего времени существования тулза остается верной своей философии и честно позволяет тестировать CSS и HTML. Имеет понятный и приятный интерфейс.
Tinkerbin — хорошая альтернатива jsFiddle. Похожий layout, возможность расширить область HTML, CSS или JS за счет вкладок. Имеет живой автоапдейт. Поддерживает LESS, SASS, CoffeScript. В целом работает — за большим советую идти на jsFiddle :).
Статья является совместной работой Игоря Антонова и Илья Курченко.
Статья опубликована журнале "Хакер" (http://xakep.ru). Май 2013 г. Издательство GameLand.
Ссылка на опубликованную статью сайта издания: http://www.xakep.ru/post/61200/
Ссылка на журнал: http://www.xakep.ru/magazine/xa/172/default.asp