
Cloud Programming: A Short Review of the Online IDE
- Transfer
It seems that today everything is moving into “clouds,” which are a vague term for defining software applications and data warehouses located on remote servers somewhere far across the Internet. So, if all of our software goes to the clouds, then why not go to the tools used to create this software? Well, some tools are there right now. Hell, even GitHub recently added basic editing capabilities. In this article, we will look at some promising Online IDEs.
The first category of online IDEs that we will consider, I really can’t call a full-fledged IDE. These lightweight IDE-like web tools are more like pastebins on steroids. Pastebins provide basic text editing capabilities and features such as syntax highlighting, but not support for version control or deployment. Instead, pastebins allow you to save and share code fragments between other users. The following web tools go beyond typical pastebins in that they also allow code to be executed. This category of under-IDE is great for something simple, but not for full development. The main feature of these web tools is the ability to quickly and easily execute and share code snippets. We will look at three of them: JS Fiddle,

JS Fiddle is not a full-featured IDE, but an excellent tool for quickly trying out any ideas with HTML, JavaScript, CSS. The website contains separate windows for HTML, JavaScript, CSS and the final result. Editors support syntax highlighting. When checking JavaScript fragments, JS Fiddle allows you to choose from several versions of each of the major JavaScript libraries, such as JQuery, Mootools, Prototype, YUI, Dojo. It even allows you to link to URLs that remotely host your JavaScript and CSS files. Your "fragments" (fiddles) can also be saved and shared with other users. And also integrated JSLint.

Python Fiddle is similar to JS Fiddle except that it is Python oriented and not a combination of HTML / CSS / JavaScript. Python Fiddle provides a sandbox for testing snippets of code in Python, and also provides support for many popular Python libraries. Like JS Fiddle, Python Fiddle supports syntax highlighting, and your snippets can be saved and shared for other users.

ideone is by far the most ambitious pastebin I've known. Just like JS Fiddle and Python Fiddle, ideone provides syntax highlighting and the ability to save and share code fragments. However, unlike the other two, ideone supports more than 20 different languages, including C, C ++, C #, Java, JavaScript, Go, Groovy, Objective-C, Perl, Python, and Ruby. ideone aims to be a universal tool for testing your code snippets.
What distinguishes real cloud IDEs from their younger brothers is that they include support for importing projects, working with version control systems (primarily Git), and in some cases support for deployment. From full-featured online IDEs, we will explore the Eclipse Orion, Cloud 9 IDE, and eXo Cloud IDE.

Eclipse Orion is an online IDE and is part of the Eclipse Foundation. The IDE is primarily focused on web programming languages such as HTML, JavaScript, CSS, but includes initial support for Java. Orion differs from other online development environments in that it is not necessarily a hosted solution, but is actually intended for deployment in private conditions on users' own servers. You can download Orion and host it, for example, your company can launch Orion for all developers of the company or even for a specific project within its corporate network.
From the very beginning, Orion allows you to initialize new projects by cloning from Git (the only supported version control system), downloading the ZIP file of your project, or by creating a new HTML5 site using initializr.
For testing, I cloned the repository in Git. For some unknown reason, I had to use HTTP for Git instead of SSH, because I couldn’t find anywhere where the SSH key is indicated. Orion provides a GUI for working with Git, but it can be a bit confusing. Although I understand that using the Git command “status” before committing is a good practice, Orion hides the commit interface under the “Show Status” repository window option, which is very confusing.
The editor is pretty good. It supports line numbers and syntax highlighting. Support for code structure (outlining) and contextual help is scattered. Currently, the code structure is only supported for JavaScript and HTML, and contextual help is available only for CSS. Basic editing commands are supported, such as Alt + Up / Down to move lines, Ctrl + D to delete a line, and Ctrl + L to go to a line number.
For more information, see Eclipse 's Orion Getting Started Guide .

Cloud9 IDE is another web development IDE that is the only one on our list that is a paid solution. Cloud9 IDE is free for public (visible to everyone) projects, but for private projects the cost is $ 15 per month. The IDE supports HTML, JavaScript, CSS, and also includes support for Ruby and PHP. Of the online IDEs, Cloud9 is the only one on this list that supports Mercurial as well as Git. In fact, from the very beginning support for GitHub and BitBucket is built-in and you can create your account in Cloud9 ID by logging in through one of these services. When I created my account, this was the only way (I hope this was fixed, but I do not want to create a new account for verification).
Provided that you log in via GitHub or BitBucket, importing projects is elementary. You should not even be familiar with the console versions of Git or Mercurial, although full version control support is provided through the console at the bottom of the screen. The tool provides an SSH key that you can register with GitHub so that you don’t see a request every time you try to commit the code.
The editor is very flexible and supports some subtleties familiar to us from Eclipse (Alt + Up / Down to move lines of code, Ctrl + D to delete a line, Ctrl + L to go to a line). The syntax highlighting is great, and there is support for "decorating" the code. The editor as you enter notifies you of errors in the code.
Your HTML pages can be tested directly in the interface. If you need deployment outside the host, Cloud9 IDE supports deployment in Joyent and Heroku.

The eXo Cloud IDE is the last online IDE we will consider and perhaps the most ambitious. eXo Cloud IDE aims to support three web languages, as well as Ruby, Java and JSP, PHP. It also provides many deployment options: CloudBees, CloudFoundry, Heroku, and Red Hat OpenShift.
eXo Cloud IDE supports Git for version control, and also contains an excellent menu at the top of the screen for all Git operations. The "Ssh Key Manager" utility is hidden in the "Window" menu, which allows you to configure the SSH key for use with remote Git hosting (such as Github). Importing a project from Git was a bit more complicated with the eXo Cloud IDE in that you had to create a folder first, initialize the repository in the folder, and then clone. Most other services will allow you to start right away with “cloning” and take care of the rest.
The editor is good enough. It supports syntax highlighting and line numbers. But he does not have some text editing chips that I have already seen in others (Alt + Up / Down is absent, but Ctrl + D to delete a line and Ctrl + L to navigate the line work). It supports outline to navigate your code. Another extremely useful feature - eXo Cloud IDE supports a minimal form of code completion (with standard Ctrl + Space). The eXo Cloud IDE provides basic completion for HTML, JavaScript, CSS, and Java, Ruby, and PHP.
The following table compares the various features of the online IDEs:
So far I do not see an online IDE with which you can solve most of the tasks of developers, but I think that they can be a useful addition to the tools of any developer. Most of it was created for web developers, since most of the tools are aimed at developing HTML, JavaScript, CSS. Tools like pastebin are useful for quickly testing new concepts and do not require much overhead compared to full-fledged IDEs.
Git is a clear winner when it comes to supporting version control in online IDEs. GitHub, in particular, is very helpful (this is a great service, so I can understand why). Only one IDE offers Mercurial support, and Subversion fans are unlucky in the future in the online world.
Personally, I lack the functions of normal code completion and refactoring tools in the current generation of online IDEs. I think support for these features will appear and improve. I see that in a few years, eventually, development teams will appear that create and deploy all of their code directly from a web browser.
Pastebins: Younger Brothers Online IDE
The first category of online IDEs that we will consider, I really can’t call a full-fledged IDE. These lightweight IDE-like web tools are more like pastebins on steroids. Pastebins provide basic text editing capabilities and features such as syntax highlighting, but not support for version control or deployment. Instead, pastebins allow you to save and share code fragments between other users. The following web tools go beyond typical pastebins in that they also allow code to be executed. This category of under-IDE is great for something simple, but not for full development. The main feature of these web tools is the ability to quickly and easily execute and share code snippets. We will look at three of them: JS Fiddle,
Js fiddle

JS Fiddle is not a full-featured IDE, but an excellent tool for quickly trying out any ideas with HTML, JavaScript, CSS. The website contains separate windows for HTML, JavaScript, CSS and the final result. Editors support syntax highlighting. When checking JavaScript fragments, JS Fiddle allows you to choose from several versions of each of the major JavaScript libraries, such as JQuery, Mootools, Prototype, YUI, Dojo. It even allows you to link to URLs that remotely host your JavaScript and CSS files. Your "fragments" (fiddles) can also be saved and shared with other users. And also integrated JSLint.
Python feed

Python Fiddle is similar to JS Fiddle except that it is Python oriented and not a combination of HTML / CSS / JavaScript. Python Fiddle provides a sandbox for testing snippets of code in Python, and also provides support for many popular Python libraries. Like JS Fiddle, Python Fiddle supports syntax highlighting, and your snippets can be saved and shared for other users.
ideone

ideone is by far the most ambitious pastebin I've known. Just like JS Fiddle and Python Fiddle, ideone provides syntax highlighting and the ability to save and share code fragments. However, unlike the other two, ideone supports more than 20 different languages, including C, C ++, C #, Java, JavaScript, Go, Groovy, Objective-C, Perl, Python, and Ruby. ideone aims to be a universal tool for testing your code snippets.
“Now let’s ask those who become real cloud IDEs to rise ”
What distinguishes real cloud IDEs from their younger brothers is that they include support for importing projects, working with version control systems (primarily Git), and in some cases support for deployment. From full-featured online IDEs, we will explore the Eclipse Orion, Cloud 9 IDE, and eXo Cloud IDE.
Eclipse orion

Eclipse Orion is an online IDE and is part of the Eclipse Foundation. The IDE is primarily focused on web programming languages such as HTML, JavaScript, CSS, but includes initial support for Java. Orion differs from other online development environments in that it is not necessarily a hosted solution, but is actually intended for deployment in private conditions on users' own servers. You can download Orion and host it, for example, your company can launch Orion for all developers of the company or even for a specific project within its corporate network.
From the very beginning, Orion allows you to initialize new projects by cloning from Git (the only supported version control system), downloading the ZIP file of your project, or by creating a new HTML5 site using initializr.
For testing, I cloned the repository in Git. For some unknown reason, I had to use HTTP for Git instead of SSH, because I couldn’t find anywhere where the SSH key is indicated. Orion provides a GUI for working with Git, but it can be a bit confusing. Although I understand that using the Git command “status” before committing is a good practice, Orion hides the commit interface under the “Show Status” repository window option, which is very confusing.
The editor is pretty good. It supports line numbers and syntax highlighting. Support for code structure (outlining) and contextual help is scattered. Currently, the code structure is only supported for JavaScript and HTML, and contextual help is available only for CSS. Basic editing commands are supported, such as Alt + Up / Down to move lines, Ctrl + D to delete a line, and Ctrl + L to go to a line number.
For more information, see Eclipse 's Orion Getting Started Guide .
Cloud9 IDE

Cloud9 IDE is another web development IDE that is the only one on our list that is a paid solution. Cloud9 IDE is free for public (visible to everyone) projects, but for private projects the cost is $ 15 per month. The IDE supports HTML, JavaScript, CSS, and also includes support for Ruby and PHP. Of the online IDEs, Cloud9 is the only one on this list that supports Mercurial as well as Git. In fact, from the very beginning support for GitHub and BitBucket is built-in and you can create your account in Cloud9 ID by logging in through one of these services. When I created my account, this was the only way (I hope this was fixed, but I do not want to create a new account for verification).
Provided that you log in via GitHub or BitBucket, importing projects is elementary. You should not even be familiar with the console versions of Git or Mercurial, although full version control support is provided through the console at the bottom of the screen. The tool provides an SSH key that you can register with GitHub so that you don’t see a request every time you try to commit the code.
The editor is very flexible and supports some subtleties familiar to us from Eclipse (Alt + Up / Down to move lines of code, Ctrl + D to delete a line, Ctrl + L to go to a line). The syntax highlighting is great, and there is support for "decorating" the code. The editor as you enter notifies you of errors in the code.
Your HTML pages can be tested directly in the interface. If you need deployment outside the host, Cloud9 IDE supports deployment in Joyent and Heroku.
eXo Cloud IDE

The eXo Cloud IDE is the last online IDE we will consider and perhaps the most ambitious. eXo Cloud IDE aims to support three web languages, as well as Ruby, Java and JSP, PHP. It also provides many deployment options: CloudBees, CloudFoundry, Heroku, and Red Hat OpenShift.
eXo Cloud IDE supports Git for version control, and also contains an excellent menu at the top of the screen for all Git operations. The "Ssh Key Manager" utility is hidden in the "Window" menu, which allows you to configure the SSH key for use with remote Git hosting (such as Github). Importing a project from Git was a bit more complicated with the eXo Cloud IDE in that you had to create a folder first, initialize the repository in the folder, and then clone. Most other services will allow you to start right away with “cloning” and take care of the rest.
The editor is good enough. It supports syntax highlighting and line numbers. But he does not have some text editing chips that I have already seen in others (Alt + Up / Down is absent, but Ctrl + D to delete a line and Ctrl + L to navigate the line work). It supports outline to navigate your code. Another extremely useful feature - eXo Cloud IDE supports a minimal form of code completion (with standard Ctrl + Space). The eXo Cloud IDE provides basic completion for HTML, JavaScript, CSS, and Java, Ruby, and PHP.
Comparison
The following table compares the various features of the online IDEs:
IDE | Cost | Languages | Version control | Deployment |
---|---|---|---|---|
Js fiddle | Free | HTML, JavaScript, CSS | Not | Not |
Python feed | Free | Python | Not | Not |
Eclipse orion | Free | HTML, JavaScript, CSS, Java | Git | Not |
eXo Cloud IDE | Free | HTML, JavaScript, CSS, Ruby, Java, PHP | Git | CloudBees, CloudFoundry, Heroku, OpenShift |
Conclusion
So far I do not see an online IDE with which you can solve most of the tasks of developers, but I think that they can be a useful addition to the tools of any developer. Most of it was created for web developers, since most of the tools are aimed at developing HTML, JavaScript, CSS. Tools like pastebin are useful for quickly testing new concepts and do not require much overhead compared to full-fledged IDEs.
Git is a clear winner when it comes to supporting version control in online IDEs. GitHub, in particular, is very helpful (this is a great service, so I can understand why). Only one IDE offers Mercurial support, and Subversion fans are unlucky in the future in the online world.
Personally, I lack the functions of normal code completion and refactoring tools in the current generation of online IDEs. I think support for these features will appear and improve. I see that in a few years, eventually, development teams will appear that create and deploy all of their code directly from a web browser.