IDEs (Integrated Development Environments) are a special type of software that developers use to write software. IDEs are designed to maximize productivity, because because they typically present a single platform which all development is done. This means a developer will do less environment switching to get his job done.
Most IDEs were developed for writing desktop-based applications, or server side development, and place front-end web development as an after thought. Plus, no matter what language you’re using, with a native IDE it’s much more difficult to work from any computer or with distributed teams. The team behind Cloud9 IDE created a JavaScript-based IDE for creating web based applications, and they have open-sourced the code, free to adapt and use. Let’s take a look.
Version Control
Cloud9 is closely integrated with a couple of version control systems, Git and Mercurial. Git is a distributed revision control system designed and developed by Linus Torvalds, the creator of Linux. Every Git clone is a full fledged repository with complete history and full revision tracking capabilities, not depended on network access or a central server. Git’s branching, tagging, and merging are near flawless. It’s merging algorithm is close to omniscient, and it’s able to merge multiple code sources simultaneously.
Mercurial is also a revision control system, but it is centralized, unlike Git that is distributed. Both work with the same abstractions, a series of snapshots which make up the history. Mercurial is more low-keyed compare to Git; however, it has really good documentation. If you have used subversion, you’ll master Mercurial in no time. If you need to merge code often, perhaps you should consider using Git. Select the right project type for your need, and click the create button to start your project.
Version Control Systems in Cloud9
Create a new project once you are ready to write some code. Cloud9 supports a number of programming languages with full debugging, and they are adding more languages as we speak.
Create a new Project
Cloud9 keeps its interface simple, and uncluttered. There are 8 main menus on its toolbar that you will frequently use. Click the file menu and pick the right file menu for your project. Cloud9 is designed for web development. It supports most popular web scripting and programming languages.
Developing a Web Page with Cloud9
Cloud9 displays source code in different colours according to the category of the code. This feature eases writing codes or markup languages as both structures and syntax errors are visually distinct. Cloud also takes cares of code formatting for you. Any time you need to format your code, open the edit menu, and click ‘Beautify Selection’.
Beautify Selection
There is also an option to change the way Cloud9 formats your code. Just open the preference menu, and choose the settings that you want.
Formatting Code
Since you’re developing straight from your browser, you’ll no longer need a separate HTML debugger, like Firebug, to fix problems.
Debugging with Firebug
Most IDEs on the market support visual design, where developer or designers drag-and-drop user interface elements to build a working user interface. Cloud9 does not support this feature, at least not at the time of writing this article. After a while, we started to miss this feature. It does have a “preview” page, though, that shows how your web page looks.
Syntax Highlight
Coding in Cloud9
If you find yourself having to (or wanting to) write a program for running services, or managing database, Cloud9 has you covered. You can write your code in PHP, Ruby, or Python. You can compile, debug, and deploy your application to a popular cloud computing solution, Joyent, and can choose one out of 6 different memory options.
Joyent's Price Plan
API documentation is a must when you code with Cloud9, because it has not supported code completion yet, and it does not highlight syntax errors when you type your codes. You can still debug your code, though. Expand the debugging pane, and you can put break points in your code, or inspect variable during runtime from the IDE.
Debug Panel
Cloud or Desktop-Based IDE
Moving the IDE to the cloud brings a number of advantages. You can avoid the time and effort required to install and configure the IDE by yourself. The cloud application is rendered in the browser, taking advantage of browser capabilities such as CSS. In cloud applications, most of the heavy processing is handled by the service provider, which minimizes the requirements on your system configuration. Desktop applications require high memory and processing speed for complex applications like graphic design. If you don’t have much processing power in your desktop, cloud might be your best bet.
One of the key advantages of having the IDE on your desktop is its independence from internet connectivity and bandwidth considerations. Cloud applications rely upon the internet infrastructure for data transport and content rendering. If you are using a desktop-based IDE, your codes are stored on your own computer, whereas in cloud IDE data resides in the server space allocated to you. Since most of the processing is handled on the server side, data needs to be transported to and from the cloud application service provider. This can impose a requirement for high bandwidth to accommodate frequent and large data calls to the cloud server.
Closing Thoughts
Cloud9 is still at an early stage of development and there is clearly a lot of work to be done before it will be able to deliver the same practical value as existing desktop-based IDE. Despite the limitations, it shows an enormous amount of promise and has the potential to eventually deliver a user experience that rivals the existing IDEs on the market. Cloud9 is an extremely impressive project that stretches the limits of what can be achieved with the browsers of today using native standards-based Web technologies. In doing so, it provides profound insight into the untapped potential of the medium and the kinds of capabilities and applications that could become commonplace in the future as browsers and Web standards evolve.