Why Cloud9 Deserves your Attention

Why Cloud9 Deserves your Attention

IDEs are a pretty divisive topic among developers – and rightly so. We’re creatures of habit, creating our entire workflow around the tools we use.

Today, I’d like to talk a bit about Cloud9, the latest entry into this saturated market. If you’ve cemented your feet into your favorite code editor, I’m here to review a few points that I think that may just change your mind. In fact, this isn’t like any editor you’ve ever used before.


What’s Cloud9?

Cloud9 is a browser based IDE. It’s a new product from Ajax.org that aspires to be the premium online development environment for JavaScript developers. As their developers put it, it’s:

The JavaScript IDE for Javascripters by Javascripters.

Cloud9 is written with JavaScript, and JavaScript alone. Yes, I mean both the back and frontends. Node.JS powers the server side part of the platform, if you’re curious, making it self hosting, on some level.

You might be wondering what makes it so special; here are the cliffnotes version of the platform. But before we move forward, a little history.


The Cloud and IDEs

A cloud based IDE has been on everyone’s minds since the concept of asynchronous web applications started taking a hold among developers though I’m pretty sure the idea itself predates the modern web.

Having access to your perfect work environment regardless of where you are is a boon for modern developers and is pretty much on everyone’s wishlist. Imagine being able to fix a simple, yet show stopping bug right from your holiday netbook just as you’re about to board a flight. Flawed, for the obvious reasons, but also perfect.

And let’s face it, minimal code editors have been online in one form or the other for quite some time now. But they’ve been just that — code editors, not IDEs. If you’re pondering on the difference here, I typically consider an IDE to be a code editor with at least debugging support thrown in.

Mozilla’s SkyWriter project, initially called Bespin, was essentially the first, well executed foray into this arena. In that sense, the Cloud9 platform isn’t really new — it has existed under a different umbrella in different stages of genesis for a while now. The current Cloud9 platform is an amalgamation of Skywriter and Ajax.org’s own Ace editor.


What Took so Long?

A number of reasons really.

  • Performance: First up, there’s the issue of performance. The JavaScript engines of yesteryear were severely gimped. And replicating a modern UI requires oodles of power that just wasn’t available.
  • Technology: While AJAX makes for smooth experiences, it still requires a bunch of back and forth between the browser and the server, most of which has to be done manually.

Fortunately, the recent years have seen exponential increase in the performance of JavaScript engines while the introduction of HTML5′s WebSockets make real time applications incredibly easy to make. Well, not incredibly easy, but easier when compared to replicating it with mere AJAX. Libraries like socket.io are a massive help as well.

And with those tidbits of information out of the way, let’s take a look at why I think you’d do well to give Cloud9 a look.


#1 – It’s Open Source

Tutorial Image

That’s right, you didn’t read it wrong. The source code to the current version is completely open source.

If you’re the kind who learns primarily by looking at code written by others or merely wants to poke around to get a feel for the codebase, you can do it! And trust me, you can learn a lot when perusing their code. There’s some pretty nifty code inside!


#2 – Hosted or Local – It’s your Choice

Use any machine to log into your account and boom!, you have the development environment of your choice with zero hassle.

You’re probably wondering what I mean here. Let me elaborate.

Ajax.org runs a hosted, development as a service version over at c9.io. If you’re the kind of person who’s constantly on the move and would like the flexibility of a cloud solution, this is the answer for you. Use any machine to log into your account and boom: you have the development environment of your choice with zero hassle.

On the other hand, if you’re unsure about the entire cloud situation and would like to run a private cloud or more traditionally, just use it as a standalone browser based IDE. Remember how the code is completely open source? There’s nothing stopping you from doing any of the options listed above. Set up a private cloud for your colleagues and code away!


#3 – The Pricing is Great

Tutorial Image

Open source projects get to use it for free!

The hosted version of Cloud9 follows Github’s pricing model.

If a project is free and open source, you get to use Cloud9 for free — there are no limitations whatsoever. Your project will be universally findable and users can fork over your code if they want.

If you’re working on a commercial project or would otherwise like to keep your projects private, however, you’ll need to opt for one of the paid plans starting at $15 a month.

Of course, all of this applies only if you want to use the cloud hosted version. You’re more than welcome to setup Cloud9 locally and enjoy the IDE without having to pay a cent.


#4 – Usable and Slick

Many of the IDEs I’ve used over the years have been pretty… eccentric. No, Textmate doesn’t count! It’s merely a text editor. Most IDEs on the Windows platform tend to be rather eccentric. They can be lumbering beasts with a myriad of panels and toolbars with inscrutable icons and such. Needless to say, most IDEs [shoo, Apple users] are neither usable nor good looking.

Tutorial Image

If, by some off chance, a usable IDE does come out, it almost always is going to be ugly as sin. Call me shallow but I’m going to be looking at an IDE all day, every day. I demand some eye candy, goshdarnit!

Tutorial Image

Cloud9 is definitely an fresh breath of air for me. The UI is minimalist, polished and utterly usable. Subtle gradients, useful iconography and an almost McGyver need to unclutter things are everywhere.


#5 – Extensible and Customizable

Thanks to Skywriter’s influence, Cloud9 features a very simple yet powerful plugin system.

Extensibility and customizability are very important facets of the IDE picture. Often, you’re going to include plugins or extensions to either boost the functionalities an IDE provides or to merely tweak the experience to your liking. Almost all of us do this, to differing extents. Just ask Jeffrey about his .vimrc file!

Thanks to Skywriter’s influence, Cloud9 features a very simple yet powerful plugin system. Are you missing support for your favorite language? Want to modify the interface to better suit your workflow? You can, and should, extend the IDE through the plugin system.


#6 — Git Integration

Tutorial Image

Cloud9 links to Github for version control and integrates completely with the platform.

Revision control is an important facet of modern development paradigms and Cloud9 accounts for this right out of the box.

Cloud9 links to Github for version control and integrates completely with the platform. It’s amazingly simple to edit and update your repos, all from within the IDE. Jeffrey’s recent premium tutorial is something you should check out if you’re even marginally interested in this topic.


#7 — Makes Node.JS Development Easier

Tutorial Image

Cloud9 is the only IDE for Node.JS.

Node.JS is one of the rising stars of the web development industry. It enables JavaScript to be used end to end thus simplifying the entire workflow.

So far, Node.JS support has been nascent, even in desktop IDEs, not to speak of testing or debugging. Cloud9 completely changes the picture. It’s essentially the only option if you’re serious about Node.JS development and need a robust editor to match. You’re able to play around to your heart’s content. A unique app URL to play around at and integrated debugging tools are some highlights if Node.JS development are your primary concern.


#8 — Extensive Language and Debugging Support

Tutorial Image

Cloud9 supports all the most popular programming languages.

From all my talk about JavaScript and Node.JS, you may be inclined to believe that this is an IDE only for JavaScript. Nothing could be further from the truth.

While the marketing tends to focus on the JavaScript part of the equation, Cloud9 supports all the most popular programming languages: Python, PHP, CSS and, of course, HTML. Keep in mind that, since this is under active development, you can count on more esoteric languages being added down the line. Just drop the friendly devs a line and let them know!

And as a modern IDE, it features almost all of the niceties you’d be expecting. Real time validation, break points and other forms of code analysis and inspection are all covered.


#9 — Co-developing and Collaboration is a Cinch

Version control is a great plan for a team over the long run to handle collaboration. But sometimes, all you want is to share your screen with someone else and write code simultaneously. Ever shared a document on Google Docs and watched as someone fix this small error you left behind? Cloud9 lets you do this from a development perspective.

Tutorial Image

Tutorial Image

On a larger scale, it also lets you add and remove developers on a per project basis with even more fine grained control over read and write access. Definitely useful when you have a large team under you. Some rudimentary project management support is baked in as well.

Tutorial Image

Cloud9 ships with an integrated, real time chat client.

And finally, in the spirit of real time development, Cloud9 ships with an integrated client that allows you to communicate with members on your team from within the IDE. Obviously, it’s more IM than email — the interaction is in real time — like Campfire for developers.


That’s a Wrap

Needless to say, if you’re fairly serious about JavaScript, you really owe it to yourself to take a look at the platform. At the very least, you’ll be supporting devs who are pushing JavaScript forward in leaps and bounds.

I hope that you’ve found this write-up interesting. We’ve tried to go with a slightly different topic today, diverging from our usual web development content. I’m sure there are lots of perspectives I’ve missed in this article, so remember to chime in with your comments. Thank you so much for reading!

Siddharth is Siddharth on Codecanyon
Note: Want to add some source code? Type <pre><code> before it and </code></pre> after it. Find out more
  • Prakhar

    Thanks for the article. It would be lovely to see a tutorial on using Cloud9 IDE to make a basic Node.js App.

  • http://aklp.gr AKLP

    Can you tell us how to make a local version of c9ide?

  • http://jaredeasterday.com Jiert

    Awesome! Thanks so much for doing a bit on Cloud9. A friend of mine is on the team, so it’s fun to see them get some attention.

    I just recently signed up for an account, and I think right now the only thing missing is FTP, but I hear it’s coming.

    Cheers!

  • http://shaneparkerphoto.com Shane Parker

    I have been waiting for something like this for so long!

  • http://blog.end3r.com/ Ender

    This one looks great. I just created my own c9 account and already started playing with it. And the testing projest is in node.js, awesome!

    Thank you so much for this very good article!

  • http://leehsueh.com hl

    does cloud9 currently have support for running and debugging languages other than javascript? i see that it has options to create python, php, ruby, etc. files, but i didn’t see anything about running them. i realize this is primarily for javascript development, but it’d be really sweet if it did.

    • http://www.wordimpressed.com/ Devin Walker

      Yeah, I want to check it out but am concerned with the JavaScript-heavy emphasis. My PHP can’t be left in the back seat.

      • http://c9.io Sergi Mansilla

        Hi Devin,

        The strong emphasis on JavaScript is just because the whole platform uses it on the server and on the client, and it was the obvious choice for the first platform to support. We are already working on PHP, Ruby and Python run/debug support and it will be coming soon. No need at all to leave your PHP in the back seat :)

        For now, you can start editing your PHP projects. We fully support its syntax highlighting and Cloud9 has every single feature you could expect from an advanced programming editor, it is very fast and the best of all, everything lives in the cloud, accessible from anywhere.

        Cheers,

        Sergi Mansilla

  • Stuart

    There are some issues with the hosted version that users should be aware of.

    First, if you sign up for an account and then link your Github account to it you will have trouble if the usernames do not match. In other words, your Cloud9 username needs to match you Github username.

    If you run into the above problem (You will be getting an error message along the lines of “Can’t access repositories not owned by you”) and then think, “Aha! I will create another account, using the Github name, and then link that one” you will get the error “Another account is already linked to Github account yourname”. At this point you are out of luck as there is no mechanism to delete your account.

    I put in a ticket concerning this about 2 weeks ago (and a number of people joined it to say they had the same problem) and have not heard anything as of yet. I assume they are working on this but just be aware if you go to sign up.

    The fix, I believe, is when signing up choose the “Instant SIgnup with Github” option. If you don’t, make sure you chose the same username as your Github username or you’ll be out of luck linking accounts.

    Good luck!

    • http://c9.io Sergi Mansilla

      Hi Stuart,

      The issues you mention are solved by now and there should be no problem using different usernames for Github and Cloud9.

      Regards,

      Sergi Mansilla

  • http://danaemc.com Danae

    For sure I’ll be taking a look at this! I have a couple of collaborative projects that this IDE could definitely help with.

  • johans

    @AKLP – to install locally you need to have Node.js installed first since Cloud9 runs on Node.

    Once you have Node installed the easiest is to install npm (Node Package Manager) and then install Cloud9 using npm.

    I also had to install socket.io

    Once installed just run it from the shell using $ cloud9 and it is available on http://127.0.0.1:3000 by default.

    You can also clone the git repo and install using the supplied shell scripts – see the instructions in repo README.md

  • johans

    @AKLP – I had to clone git repo and install using shell script as per README.md

    Although it installed via NPM and loaded in the browser it did not have all module dependencies resolved.

  • http://www.github.com/dotink/inkwell Matthew J. Sahagian

    Unfortunately this software just seems too buggy to use. I’m a bit surprised they’re even charging for it for “commercial” use with the number of bugs that I’ve run into. I have no problem debugging and testing software, but 1) It’s buggy to the point where it’s unusable for me 2) even offering a commercial option at this stage seems a bit crazy.

    I have tried hosting this myself just a few weeks ago, and previously it was invite only… now that it’s opened up I’m thinking maybe they should have left it that way.

    When running on node.js simply accessing the app or doing much of anything once logged in would cause sudden and very quiet crashes.

    With the hosted solution I was unable to change my username with my first account after realizing it wouldn’t really link well with github since my repos are hosted as an organization, and it is my personal account that has actual access to them. Trying to create an organizational unit on there doesn’t seem to do much of anything. And last but not least, I can’t even add the github repo on the original account anyhow because it’s already saying a project with that name exists, despite no projects being listed.

    All in all I spent far more time fighting with this software both self-hosted and not. It looks extremely visually polished, and your article makes it appear ready for the masses, but I’m sorry to say, my experience has shown otherwise.

    • http://vidarvestnes.blogspot.com Vidar Vestnes

      I find the idea of an online IDE very interesting, so I gave it a couple of minutes of testing myself. I used Google chrome and also found it a bit buggy.

      The dropdown-meny to create a new files didn’t render correctly due to some overlay/css issue.
      Nothing happened when i clicked new .php file… I tried several times… After some minutes It suddenly appeared a couple of untitled PHP files, so I started editing on a simple echo “Hello world” script. There was no syntax highlighting.

      Than i tried the Run-button hoping that the php script would produce some kind of output. But nothing happened… I’m confused on what to expect.

      This was the 3-4 minutes I gave to Cloud9 ide for now, and im sorry to say, it does not seem to be any good for me.. I’m still going to keep good old Eclipse :-)

      To the Cloud9 team:
      I would like to say, keep it up! One day I (and many others) will test it again, and If I’m amazed or find it working I would love to use it. Just keep in mind that most developers out there are like me; only giving it a try for a few minutes and then moves on if it does not give me the WOW feeling, or feeling of beeing buggy. Btw.. I found the GUI’s look and feel quite sexy!

    • http://c9.io Sergi Mansilla

      Hi Matthew,

      I am one of the Cloud9 developers. I am really sorry that you experienced such a frustrating experience using Cloud9, that is not the case for most people. There were some bugs related to binding projects to organizations and private projects were not shown properly sometimes, and you must have run into them before we had a chance to fix them. These bugs are solved (as of last Monday) and the product is pretty stable now.

      In case you still run into some issues, it would be great if you could tell us about it so we can solve them as soon as possible. You can file bugs here: http://cloud9ide.lighthouseapp.com or just send us an email if you prefer. We try to be very responsive fixing issues.

      I hope you can try Cloud9 again and tell us more about your experience. We want you on board!

      My apologies again,

      Sergi Mansilla

      P.S. We are interested as well on your self-hosted problems. It really should work out of the box.

      • http://envexlabs.com Matt Vickers

        Sergi,

        Didn’t you know that people dont’ give constructive feedback?

        Simply stating that your product is “buggy”, and not offering any insight into what’s buggy, is common practice.

        /sarcasm

        It’s a neat product and the small amount I played around with it was pretty fun.

        Keep it up!

      • johans

        I cloned from Git and followed README.md instructions – running .bat (Windows XP + Cygwin)

        Took some time to download/build/install as the instructions said.

        Started with $ cloud9 -w path/myapp

        Loaded fine and with console reporting:

        Project root is path/myapp
        Try starting your browser… 127.0.0.1:3000

        I do that, loads IDE and then throws errors: Errors: no such file or directory…

        Unable to open folder specified in -w path.

        I also had issues as commented above with using online version and linking to my Git repo.

        Overall the project looks promising but I’d be hard pressed to invest time to resolve issues.

      • http://www.github.com/dotink/inkwell Matthew J. Sahagian

        @Matt_Vickers

        Matt, I think I made it quite clear what was buggy. I pointed out at least three very clear issues. Additionally I looked into whether or not these bugs had been reported, as I was searching for solutions, and they already appeared to be, although it was very unclear as to whether they were reported as resolved.

        Additionally, the need to sign up for YET ANOTHER ACCOUNT just to report bugs is a huge turn-off. Say what you want about the mass’s tendencies to not give constructive feedback, but realize that there are actual reasons why they don’t.

        @Sergi

        As far as I can tell these problems aren’t resolved as I tried this yesterday.

        As of today, trying to change my username still results in the following (if you want specifics):

        Command failed: mv: cannot access /mnt/ws/users/dotinkweb

        I still have no way to add my github project for my organization. Perhaps rewording this would help. The organization scheme on github, as far as I can tell does no offer separate public keys for the organization, but rather you add users to the organization and it is those user’s permissions which allow for certain access. You can then, in turn, add public keys to your github users. So while I can have a “dotinkweb” account and organizational role on cloud9, that is absolutely useless for my github “dotinkweb” organization, because the public keys have to actually be added to my github user account “mattsah”.

        I can of course add my github project to my “mattsah” account on cloud9, as that correcty matches my “mattsah” account on github, so I can edit those account settings and add the key that you generate for me.

        That being said, when I attempted to open files it did not work. I tried to preview a file to get a better idea of what was going on, and it said /mattsah/inkwell/ was not found, or something similar. This clearly is looking for a fork of inkwell on my user account, but that is not the case. My user has direct access to the /dotink/inkwell repository using their organizational roles and permissions.

        Like I said – It’s simply too buggy to be usable, as such, it is not like I can continue using it and finding additional bugs… there’s nothing to use there for me. In that regard it simply feels like it doesn’t do what it says it does.

      • Edward Longman

        Since you are asking about self hosting problems I have had no end of problems with the installation on windows XP and it definitely not working out the box. I have posted a topic on the google group.

  • http://about.me/chrisjacob Chris jacob

    Great article Siddharth!

    I had early BETA access to Cloud9IDE; and I’m really excited to see Nettuts+ doing a writeup like this.

    The Cloud9IDE as a service is truly amazing; and is only going to get better.

    Any issues I’ve had have been responded to very quickly by the Cloud9IDE team.

    I’m working on a site to teach teenagers HTML, CSS and Javascript … I’m thinking seriously about using Cloud9IDE as the IDE of choice – just to get the kids straight into the action as quickly as possible! Plus being able to take their IDE from home to school, to their netbook to, their ipad, or whatever; is going to suit their code needs perfectly (not that coding on an ipad is any fun!).

    Also getting Git right out of the box is a REAL bonus.

    I also feel that Github + Cloud9IDE will foster a real collaborative development environment … which will be great for teenagers with smaller social circles.

    … not to meantion with Node.js I can teach both clientside and serverside programming (I just love how Javascript is evolving!)

    + Firefox4 and jsfiddle.net FTW.

    These are exciting times!

  • Matthew Laver

    I think as soon as one of these IDE’s implements code completion then I’ll be fully there along with lots of other people.

    p.s. check out http://kodingen.com/ as well

  • http://c9.io Sergi Mansilla

    Hi Vidar,

    Thanks a lot for your feedback.

    I tried to reproduce the flow you mention with Chrome 10 and I didn’t have any problem. Can you describe your exact environment? I’d like to find the cause of it because we haven’t experienced these problems.

    We are hard at work with PHP run/debugging support, but for now we only offer that for NodeJS projects and static web pages. I agree that having the ‘run’ button enabled for these projects can be confusing, and we will change that. Expect PHP, Ruby and Python debugging support soon, though!

    I hope you can try Cloud9 again soon and help us make it your IDE of choice.

    Thanks again for your comments, and don’t hesitate to tell us in case you find an issue or have a suggestion on how to improve Cloud9!

    Sergi Mansilla

    • http://vidarvestnes.blogspot.com Vidar Vestnes

      Hi Sergi,

      Please feel free to have a look at some of the error-messages and bugs that was thrown at me
      (after using by 4-5 minutes on testing, that very simple usage on writing a very simple index.html)

      http://www.dropbox.com/gallery/19717671/1/Cloud9?h=1ada99

      - Vidar

      Keep it up!

  • http://www.richin.de richin

    Wow this is amazing!

    I’ve seen some Cloud services for programmers but this is going to be the next level!

    Very cool!

  • http://huangsx-allstar000.blogspot.com/ rosin

    thanl you for sharing

  • http://www.umbraprojekt.pl mingos

    Ubuntu says: Why settle for Cloud 9 when you can have Cloud 10? http://www.ubuntu.com/ (check the slider in the header) ;)

    • http://www.vifc.at Alex

      haha… good one.

  • Edward

    It’s still way too buggy. I couldn’t even get a project to open to see what the interface looks like. At this point they’re doing more damage to their reputation then good. It’s a great idea but get it working properly before sending out a call to the masses (or even thinking of charging for the service!).

    • http://www.akshell.com Oleg

      Why don’t you give http://www.akshell.com a go? Users have reported that it’s a lot more stable.

  • Daquan Wright

    My biggest concern would be memory usage…Firefox and Chrome can get awfully greedy with my ram. xD

    Modern IDE’s on the desktop can suck up memory too (like Netbeans and Aptana)…so I wonder how much ram a browser will take if you work heavily in Cloud9.

    Also, anyone know a good IDE written in C++? just wondering

    • johans

      I’ve been using JetBrains WebStorm (download fully functional 60 day trial) and really like it.

      Works nicely with Git and does not seem to be resource intensive.

      For single user its not overly expensive either: $69

      http://www.jetbrains.com/webstorm/

      • http://www.facebook.com/franz.fra.7 Cunning Stunt

        +1. The only IDE I’ve ever seen that doesn’t look UGLY.

  • johans

    Another one that loads quickly and looks promising is: http://www.akshell.com/

    • http://www.akshell.com Oleg

      Thank you for the mention. We think less can be more when it comes to features and are focusing on stability and providing awesome support.

      http://twitter.com/akshell_com – status updates on uptime and availability, amongst other things
      http://groups.google.com/group/akshell – development support and new feature discussions

  • http://www.my-html-codes.com HTML Codes Dude

    Thanks for sharing this. I’ve been signed up for Cloud9 for a while but not got round to doing anything. Looks like there are a few other options to choose from as well that I will check out.

  • sharp

    Just tested in chrome 10. Created a project and clicked on “new JS file”.Didn’t work on Chrome. Closed my browser and went back to my regular editor.

    • http://www.facebook.com/franz.fra.7 Cunning Stunt

      That’s basicly how everything looks to me too when it comes to more complex JavaScript – so buggy. I’ve turned JS off completely nowadays to enjoy normal web experience.

  • http://lairbob.com LairBob

    I think this is a great idea, too, but after 3-4 weeks of waiting for a critical bug to get addressed, I’ve pretty much given up on it. (Yes, I filed a very specific and detailed bug report — #61 — right away through Lighthouse.) Several other people have reported the same error: basically, as soon as we log in using GitHub, we get a blank screen, and then that’s it.

    The Cloud9IDE team was pretty responsive at first, and thought they had fixed it a couple of times, but I haven’t heard anything for over a week, but it’s still not working on any browser for me. It seems to have been fixed for some people, but it’s still listed as “open”, so I assume it’s not just me. I’d love to check it out at some point, but there’s still a limit to how much effort it’s worth to put into just trialing an app.

  • Parvez

    Hey! Thanks for sharing about this wonderful IDE. its amazing to learn about its features and flexibilities.

  • http://www.youku.com/ lulu233

    There are definitely a variety of details like that to take into consideration. That may be a good level to carry up. I supply the thoughts above as basic inspiration however clearly there are questions just like the 1 you convey up the place crucial thing shall be working in trustworthy great faith. I don?t know if best practices have emerged round issues like that, nevertheless Im positive that your job is clearly recognized as a great game. Both girls and boys truly feel the impression of only a second’s pleasure, for the remainder of their lives.

  • Erik Forey

    Chequen esta solución de administración multiplataforma completa para el centro de datos virtualizado http://bit.ly/nBWU3P

  • Carlos Rafael Ramirez

    Hello,

    Do you know if the opensource version installed in local mode have the terminal emulator that van be seen in the hosted option?

    Regards