Программирование в облаке: Небольшой обзор Онлайн-IDE

Original author: Mike Wooten
  • Translation
Похоже, что всё сегодня переходит в «облака», которые являются туманным термин для определения программных приложений и хранилищ данных, размещенных на удаленных серверах где-то далеко по всему Интернету. Так что, если всё наше ПО переходит на облака, то почему бы не перейти инструментам, используемым для создания этого ПО? Ну, а некоторые инструменты, есть там прямо сейчас. Черт, даже GitHub недавно добавил базовые возможности редактирования. В этой статье мы рассмотрим некоторые многообещающие Онлайн-IDE.

Pastebin'ы: Младшие братья Онлайн-IDE


Первая категория онлайн-IDE, которые мы будем рассматривать, я на самом деле не могу назвать полноценными IDE. Эти легковесные IDE-подобные веб-инструменты больше похожи pastebin'ы на стероидах. Pastebin'ы предоставляют основные возможности редактирования текста и такие функции, как подсветка синтаксиса, но не поддержку контроля версий или деплоймента. Вместо этого, pastebin'ы позволяют сохранять и расшаривать фрагменты кода между другими пользователями. Следующие веб-инструменты выходит за рамки типичных pastebin'ов в том, что они также позволяют выполнять код. Эта категория недо-IDE отлично подходит для чего-то простенького, но не для полноценной разработки. Главной фишкой этих веб-инструментов является возможность быстро и легко выполнять и совместно использовать фрагменты кода. Мы рассмотрим три из них: JS Fiddle, Python Fiddle и ideone.

JS Fiddle


image

JS Fiddle не является полнофункциональной IDE, но отличное средство для для быстрого опробования каких-либо идей с HTML, JavaScript, CSS. Веб-сайт содержит отдельные окна для HTML, JavaScript, CSS и конечного результата. Редакторы поддерживают подсветку синтаксиса. JS Fiddle позволяет при проверке JavaScript-фрагментов выбрать из нескольких версий каждой из крупных библиотек JavaScript, таких как JQuery, Mootools, Prototype, YUI, Dojo. Он даже позволяет сделать ссылку на URL, где удаленно размещены ваши JavaScript и CSS-файлы. Ваш «фрагменты» (fiddles) также могут быть сохранены и совместно использоваться с другими пользователями. И ещё интегрирован JSLint.

Python Fiddle


image

Python Fiddle похож на JS Fiddle за исключением того, что ориентирован на Python, а не комбинацию HTML/CSS/JavaScript. Python Fiddle обеспечивает песочницу для тестирования фрагментов кода на Python, а также обеспечивает поддержку многих популярных Python-библиотек. Как и JS Fiddle, Python Fiddle поддерживает подсветку синтаксиса, и ваши фрагменты можно сохранять и расшаривать для других пользователей.

ideone


image

ideone на сегодняшний день является самым амбициозным из известных мне pastebin'ов. Так же, как JS Fiddle и Python Fiddle, ideone обеспечивает подсветку синтаксиса и возможность сохранять и обмениваться фрагментами кода. Однако, в отличие от двух других, ideone поддерживает более чем 20 различных языков, включая C, C++, C#, Java, JavaScript, Go, Groovy, Objective-C, Perl, Python и Ruby. ideone стремится быть универсальным средством для тестирования ваших фрагментов кода.

«А теперь попросим подняться тех, кто станет настоящими облачными IDE»


Что отличает реальные облачные IDE от своих младших братьев так это, что они включают в себя поддержку для импорта проектов, работу с системами контроля версий (в первую очередь Git), а в некоторых случаях поддержку деплоймента. Из полнофункциональных онлайновых IDE мы будем исследовать Eclipse Орион, Cloud 9 IDE, и eXo Cloud IDE.

Eclipse Orion


image

Eclipse Orion представляет собой онлайновую IDE и является частью Eclipse Foundation. IDE в первую очередь ориентированно на веб-языки программирования, такие как HTML, JavaScript, CSS, но включает начальную поддержку Java. Orion отличается от других онлайновых сред разработки тем, что это не обязательно представляет из себя хостящееся решение, а на самом деле предназначен для развертывания в частных условиях на собственных серверах пользователей. Вы можете скачать Orion и разместить у себя, например, ваша компания может запустить у себя внутри корпоративной сети Orion для всех разработчиков компании или даже для какого-то конкретного проекта.

С самого начала Orion позволяет инициализировать новые проекты путем клонирования из Git (единственная поддерживаемая система контроля версий), загрузкой ZIP файл вашего проекта, либо путем создания нового сайта HTML5 с использованием initializr.

Для тестирования я клонировал репозиторий в Git. По непонятным причинам мне пришлось использовать HTTP для Git вместо SSH, так как я нигде не смог найти, в каком месте указывается SSH-ключ. Orion предоставляет графический интерфейс для работы с Git, но он может быть немного запутанным. Хотя я понимаю, что использование Git'овской команды «status» перед выполнением коммита — это хорошая практика, но Orion скрывает интерфейс коммита под опцией окна репозитория «Показать Статус», что очень путает.

Редактор довольно хорош. Он поддерживает номера строк и подсветку синтаксиса. Поддержка структуры кода (outlining) и контекстной помощи разбросана. В настоящее время структура кода поддерживается только для JavaScript и HTML, а контекстная помощь доступна только для CSS. Поддерживаются основные команды редактирования, такие как Alt+Up/Down, чтобы перемещать строки, Ctrl+D для удаления строки, а Ctrl+L для перехода к номеру строки.

Дополнительную информацию вы можете получить в Eclipse'овском "Руководство по началу работы" для Orion.

Cloud9 IDE


image

Cloud9 IDE это ещё одна веб-IDE, специализирующаяся на веб-разработке, и единственная в нашем списке, которая является платным решением. Cloud9 IDE является бесплатной для публичных (видимых всем) проектов, но для частных проектов стоимость составляет $15 в месяц. IDE поддерживает HTML, JavaScript, CSS, а также включает в себя поддержку Ruby и PHP. Из онлайновых IDE, Cloud9 является единственной в этом списке, которая поддерживает Mercurial, а также Git. На самом деле, с самого начала встроена поддержка GitHub и BitBucket и вы можете создать свой аккаунт в Cloud9 ID, войдя в систему через один из этих сервисов. Когда я создавал свой аккаунт, это вообще было единственным способом (надеюсь, что это было исправлено, но я не хочу создавать новый аккаунт для проверки).

При условии, что вы войдите через GitHub или BitBucket, импорт проектов является элементарным. Вы даже не должны быть знакомы с консольной версий Git или Mercurial, хотя, полная поддержка контроля версий осуществляется через консоль в нижней части экрана. Инструмент предоставляет SSH-ключ, который вы можете зарегистрировать в GitHub, чтобы не видеть получать каждый раз запрос при попытке закоммитить код.

Редактор очень гибкий и поддерживает некоторые тонкости, знакомые нам по Eclipse (Alt+Up/Down для перемещения строк кода, Ctrl+D для удаления строки, Ctrl+L для перехода к строке). Подсветка синтаксиса великолепна, и есть поддержка «украшения» кода. Редактор при вводе уведомляет вас об ошибках в коде.

Ваши HTML-страницы могут быть протестированы прямо в интерфейсе. Если вам нужен деплоймент вне хоста, Cloud9 IDE поддерживает развертывание в Joyent и Heroku.

eXo Cloud IDE


image


eXo Cloud IDE является последней онлайновой IDE, которую мы будем рассматривать и, возможно, самой амбициозной. eXo Cloud IDE направлена на поддержку трех веб-языков, а также Ruby, Java и JSP, PHP. Она также обеспечивает множество вариантов развертывания: CloudBees, CloudFoundry, Heroku, и Red Hat OpenShift.

eXo Cloud IDE поддерживает Git для управления версиями, а также содержит отличное меню в верхней части экрана для всех Git-операций. В меню «Window» спрятана утилита «Ssh Key Manager», позволяющая настроить SSH-ключ для использования с удаленным хостингом Git (таких, как Github). Импорт проекта из Git был немного сложнее с eXo Cloud IDE в том, что сначала вы должны были создать папку, инициализировать репозиторий в папке, а затем выполнить клонирование. Большинство других сервисов позволят вам начать сразу с «клонирования» и берут на себя все остальное.

Редактор достаточно хорош. Он поддерживает подсветку синтаксиса и номера строк. Но он не имеет некоторых фишек редактирования текста, которые я уже видел в других (Alt+Up/Down отсутствует, но Ctrl+D для удаления строки и Ctrl+L для навигации по линии работают). Он поддерживает outline для навигации по вашему коду. Ещё одно чрезвычайно полезное свойство — eXo Cloud IDE поддерживает минимальная форму автодополнения кода (со стандартным Ctrl+Пробел). eXo Cloud IDE обеспечивает базовое автозавершение для кода на HTML, JavaScript, CSS, и Java, Ruby и PHP.

Сравнение


В следующей таблице приведено сравнение различных особенностей онлайновых IDE:

IDE Стоимость Языки Контроль версий Деплоймент
JS Fiddle Бесплатна HTML, JavaScript, CSS Нет Нет
Python Fiddle Бесплатна Python Нет Нет
Eclipse Orion Бесплатна HTML, JavaScript, CSS, Java Git Нет
eXo Cloud IDE Бесплатна HTML, JavaScript, CSS, Ruby, Java, PHP Git CloudBees, CloudFoundry, Heroku, OpenShift

Заключение


Пока я не вижу онлайн IDE, с помощью которых можно решать большую часть задач разработчиков, но думаю, что они могут являться полезным дополнением к инструментарию любого разработчика. Большая часть создана для веб-разработчиков, так как большинство инструментов направлены на разработку HTML, JavaScript, CSS. Инструменты типа pastebin полезны для быстрого тестирования новых концептов и не требуют много накладных расходов по сравнению с полноценными IDE.

Git — явный победитель, когда дело доходит до поддержки контроля версий в онлайновых IDE. GitHub, в частности, этому очень способствует (это отличный сервис, поэтому я могу понять, почему). Только одна IDE предлагает поддержку Mercurial, а любителям Subversion не повезло в будущем в онлайн-мире.

Лично мне не хватает функций нормального автодополнения кода и инструментов рефакторинга в нынешнем поколении онлайновых IDE. Я думаю, что поддержка этих функций будет появляться и улучшаться. Я вижу, что через несколько лет в конечном счете появятся команды разработчиков, создающие и развертывающие весь их код прямо из веб-браузера.
Share post

Comments 41

    +7
    Идея самого онлайн-IDE просто отличная
    вот ещё в копилку compilr.com/
      +1
      Объясните, пожалуйста, по пунктам, почему данная идея представляется вам отличной?
        +4
        по той же причине по которой отличной представляется google docs
        да и вообще все облачные технологии
        если интересно, могу перечислить по пунктам, но думаю это только засорит топик ;)
          0
          Нет, я серьёзно.
          Online-IDE — штуха отличная, но зачем?!
          Действительно есть необходимость в подобных решениях?
          Вопрос и к автору.
            0
            * штука.
              +3
              Ну допустим, я нахожусь в отпуске, без ноутбука, etc. и мне вдруг приходит в голову гениальная идея — я иду в интернет-кафе, подключаюсь к любимой онлайн-IDE, выбираю любимый компилятор, проверяю, сохраняю (в облако или на флешку), ухожу. Или, допустим, что я не имею доступа, скажем, к g++, хотя он мне нравится больше любых других компиляторов языка c++
                –2
                о Онлайн-ИДЕ для клода или какого либо веб-приложения я просто мечтаю! Живой пример Вики или даже тот же Фэйсбук, минимальные изменения которого могут серьёзно повлеять как на участников так и на всё вокруг.
                Если же речь идёт об аналогичном изменении «логики того же портала» в режиме онлайна — то тут необходимость для меня очевидна. Нигде не проверишь лучше как ЭТО работает точнее, как на самом портале.

                Правда для «гениальных озарений» касательно embedded-programm я не уверен — трудно в веб-кафе, как по мне, смоделировать какой нибудь микроконтроллер :)
                0
                Ну к примеру несколько сотрудников, вы даете выбор использовать Mac, Linux, Win.

                Monodevelop не устраивает никого. Вот на такой случай было бы прекрасно иметь Visual Studio в вебе. С возможностью дебаггинга, intellisense и тп. не зависящий от платформы.
                  0
                  Сформулирую пример из личного опыта:
                  Большинство пользователей не программисты и рады помочь проекту (open source), например переводом или они откопали на stackoverflow как включить bluetooth gps и хотя как можно быстрее реализовать, помочь разработчику. Слава богу github позволяет редактировать в онлайн и делать pull-request.

                  Но еще (!) очень часто у людей возникает необходимость запустить и проверить ничего ли они не поломали или проверить что хотя бы компилируются. Скажем минимальное программирование :) Но такие маленькие эффекты несут грандиозные улучшения, особенно если пользователь знает, что это сделать очень просто и не надо тратить x-часов на установку окружения.

                  Я бы и сам подправил кое-что в Linux если бы имел возможность подключиться к онлайн редактору. Важно ведь не только сделать изменение, но и обсудить его, чтобы его приняли, а здесь как раз онлайн необходим.
                    0
                    Также не стоит забывать о том, что некоторые проекты требуют больших ресурсов на анализ и компиляцию. А разработчики не всегда имеют счастье обладать топовым железом. Перевод таких проектов в облако был бы глотком свежего воздуха в таких случаях.
                      0
                      Подобные системы решают задачу преднастроенного и предсказуемого рабочего окружения, создают комфортную среду для решения поставленной задачи. В таких условиях от разработчика только требуется применить задаия в рамках поставленной задачи и не тратить время зря.
                  0
                  А не знаете как сделать что бы русский язык в нем заработал?
                    0
                    Имею ввиду не язык интерфейса. А в коде пишу русский текст, а в превью он отображается в виде вопросительных знаков. КОдировку в хтмл указывают юникод.
                    0
                    codev beta по функционалу похожа на Eclipse Orion, минималистичный интерфейс, может работать с FTP, назначение задач и учет времени, но не очевидно как работает учет или еще не работает, git не поддерживал, но есть внутренняя история изменений.
                    +1
                    А как же WIODE, довольно перспективная штука.
                      –1
                      Действительно очень интересный проект, еще очень молод, но думаю его стоило бы включить в обзор.
                      Но в общем я сделал свой выбор — и это WIODE. Была бы карма, поставил бы плюс за наводку. Спасибо.
                      0
                      Не знаю как не счет других IDE, но называть ето «обзором» Cloud9 как-то неумесно. Нет ни слова про совмесную работу, организации, внутренний чат (при совмесной работе), отладку nodejs кода и т.д.
                        +1
                        А я вот вчера наткнулся на www.sourcelair.com/, достаточно интересная штуковина для тестов.
                          +4
                          Даешь VisualStudio в облаке, со встроенным облачным TFS!
                            0
                            А Вы даже и не сомневайтесь, что такое скоро будет.
                              +1
                              Но чтобы притом бесплатно!
                                0
                                Не, не! Давайте чтоб еще доплачивали!
                              0
                              +1
                              Cloud 9 IDE тоже можно развернуть на своих серверах, т.к. это открытый проект. github.com/ajaxorg/cloud9
                              Вот только, к сожалению, не вижу там поддежки систем контроля версий. Возможно это фишка обозреваемого в данном топике сервиса.
                                +3
                                А как же coderun.com/ide/ — почти Visual Studio в браузере ))
                                  0
                                  Ооо! Не видел никогда такой штуки. Самое удивительное что оно худо бедно работает, создал проект ASP.NET, и запустил его! Ставит по F9 брейки lol, но не отлаживает.
                                  img687.imageshack.us/img687/4672/sshot6vt.png
                                    0
                                    Это просто… Обалдеть! Всё что описано в статье не идёт ни в какое сравнение)))
                                    0
                                    как работать в облачной иде в девелопменте? У примеру, у меня есть проект. Я правлю код, как мне посмотреть изменения? Или надо делать коммит на стейджинг сервер и смотреть на нем?
                                      +1
                                      А я kodingen.com люблю. Он идет с поддержкой многих языков, cgi, бесплатным хостингом и кручей других киллер-функций
                                        0
                                        Cупер! Спасибо за внушительный обзор!

                                        Для начинающего «Клоудера» недавно ZK (www.zkoss.org) заимел тоже весьма удобный, хотя и оччнь сырой
                                        [ ZK Fiddle | blog.zkoss.org/index.php/2011/08/28/online-coding-playground-now-available-on-zk-forum/ ]!

                                        Похоже время пришло, когда эту идею как раз сейчас сообщество решило «попинать ногами».
                                        Где ещё как не в облаке программить проги для этого же облака?! Всё логично. В ZK Fiddle представлен даже соответствующий контроль версий для сотворённого кода.

                                        А вот тут то, что получилось «напрототипить» :http://zazki.jelastic.com/zazki/hello.zul

                                          0
                                          прикольно. а как вам Jelastic? багов много встретили?
                                        • UFO just landed and posted this here
                                            0
                                            web2py фреймворк на Python поддерживает GAE, поэтому можно отнести его к облачному солюшену. В состав web2py входит админка с редактором БД и редактором исходником. На IDE не тянет, хотя синтакс подсвечивает, Git поддерживает. Да даже и доктексты интегрированы в среду. Хотя некоторые питонисты считают web2py некошерным.
                                              0
                                              а про ide.hivext.com не знали или просто решили не включать в обзор по каким-то причинам?
                                                0
                                                Это перевод
                                              • UFO just landed and posted this here
                                                  +1
                                                    0
                                                    Хотелось бы Visual Studio в облаке.
                                                      0
                                                      Cloud9 IDE очень и очень понравился. Уже добавил один реальный проект по ftp, полет нормальный. Понравилась привязка сессий к акку, а не к браузеру. Особенно удобно там, где под рукой нет доступов к серверам, а есть только браузер (при чем ff, chrome или safari, ie9 не подходит).

                                                      Конечно, очень приближенно к десктопному ide, но еще маловато кастомизации. Но в целом, я ожидал худшего.
                                                        0
                                                        Теперь можно не устанавливать другую ось и не мучиться с установкой/настройкой IDE, чтобы попробовать новый язык в деле.
                                                        Очень круто.

                                                          Only users with full accounts can post comments. Log in, please.