Let’s do Cloud Programming!
Part 1: Introduction

Imagine the useful and famous Google Docs exists for software developers. Instead of writing texts, you can program in a document together. One developer codes and the other one has a look at it (remotely), corrects and comments the code lines. That would be nice, wouldn’t it? And everything works just in a web browser. The application would provide a version control system, a terminal, a project browser and a complete project management including debugging, compiling, deployment and everything the developer’s heart desires. You would no longer need a local IDE and you can access your complete development environment from anywhere, via the Internet – every time! Are these dreams of the future or do intelligent solutions already exist?

Actually there are online IDEs which take these approaches. Though many important features that make an IDE workable are missing. In my opinion, for professional work an IDE needs the following features:

  • syntax highlighting,
  • code completion,
  • error reporting,
  • refactoring,
  • integrated version control system,
  • debugging,
  • project browser,
  • terminal and
  • a search.

In addition to these features the IDE has to work efficiently and be stable. If I use code completion, the suggestions should appear within a minimal latency time: I don’t want to wait as long as it would take to clean my keyboard (even though my keyboard needs to be cleaned badly). I had a look through the Internet and I have found some online IDEs that I will present to you in the next few articles about Cloud Programming. In particular, the online IDEs Cloud9, Koding and ScalaIDE will be reviewed. Last but not least, I will sum up the blog series and give a final conclusion. Let’s do Cloud Programming!

Let’s do Cloud Programming!
Part 2: Cloud9

Cloud9 Editor

I present you Cloud9 as the first online IDE in the blog series “Let’s do Cloud Programming!”.
Cloud9 has a remarkably fast development and provides many features. Cloud9 supports common web documents like HTML, JavaScript, Ruby, CSS, XML and even Selenium. Cloud9 provides a free version and a version with costs. The free version has one private workspace and unlimited public work spaces. For $12 per month, the other version provides six private work spaces and a complete shell access. The terminal is integrated in the web platform. In addition to these, the complete workspace can be connected with your own server.

What else does Cloud9 provide? When the developer logs in to Cloud9, he opens his own dashboard with an overview of his projects and he can create a new workspace or choose an existing one. If you create a new project, you have the project tree on the left and the editor on the right side. The editor is based on Ace (Ajax.org Cloud9 editor). Ace is a standalone editor which is completely written in JavaScript and supports different themes and syntax highlighting for common languages. Collaboration is the keyword. Software engineers can develop together on the same code in real-time and discuss in a chat window. Thereby pair programming and code reviewing is possible without difficulty. This is interesting even for school use. Cloud9 supports GitHub and Bitbucket, so the repository can be up to date without leaving the IDE.

Cloud9 also provides a complete run-time environment. Ruby and Python applications can be executed, the gcc compiler can be used and within the terminal most of the Linux commands are available. The workspace can be connected to your own server and you can operate by SSH from the terminal. You can connect to a FTP server with Cloud9 as well. Thanks to the small application “C9 Local” for Mac and Linux, you can have your code on your local machine and synchronized with the workspace. This gives you the opportunity to develop offline. Cloud9 supports code completion for JavaScript and node.js. If you mark a suggestion in the code completion box, additional information will be shown.

Many nice features complement the IDE. The user interface is very modern and I can imagine working productively with it. But some typical IDE functions are still missing, like code completion over other classes or error reporting with error signs and appropriate error message in the editor.

Cloud9 Code-Completion

To test the practicability I created a private workspace and tried cloning a development repository of YMC with over 2000 files from Git. Because the cloning process didn’t finish in 30 minutes several times, I cancelled the test and tried it with a smaller repository. Code completion and error reporting works remarkably efficiently with JavaScript files, but unfortunately it works only with JavaScript and not with the whole project. The general handling of the IDE doesn’t satisfy me yet, sometimes the IDE lags a little bit or doesn’t work as expected. What is amazing though is the fact that for every workspace an Apache server is provided and with it a web project can be tested. Unfortunately it is not possible to load an eZ Publish instance, except if you connect your own server to Cloud9.

I can recommend Cloud9 to developers interested in a flexible and independent solution. All you need is a computer and Internet connection – so you can access your projects at home, work, or even in an Internet cafe on the other side of the world. The complete IDE is web based and provides many features which an IDE should have. It is a pity that the IDE feels sometimes laggy and some features are still missing. Unfortunately loading a huge project was not possible. I am curious what the next steps of Cloud9 will be. In the next article I will present you the online IDE Koding, which has a different concept than Cloud9.

(This blog post is also available in German)

0 Kommentare

Einen Kommentar abschicken

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.