Cloud9 IDE - Online IDE

Show all articles

The Best Way to Help Programmers

By | 2 Comments

Remember this prediction?

“In the year 2000… you will be able to instantly replicate your colleague’s dev environment on your own computer.”

Just kidding! No one said this (not even during the Mother of All Demos). So what do you do when your fellow developer needs help? The best option is to stand at his or her desk. But remote teams, teachers and developers on the move know this is not always possible. In fact, as the development world becomes more geographically dispersed, this is a more immediate problem than it used to be.

Luckily there is a solution, it’s already here, and it’s as simple as pasting a URL.

Don’t Recreate It. Share It.

When you work in a Cloud9 workspace, the files you save and the runtimes you use are already operating in the cloud. By its nature a Cloud9 workspace doesn’t care where you are or what OS you use. In fact,[yourname]/[yourproject] is just like any other URL on the web: it’s shareable. Pass it off to your colleague and the IDE loads up just as you see it; in a matter of seconds everyone is working in the same environment.

Think about that again. You don’t have to recreate a development environment because it exists independently from the computer you’re using.

How We Use Workspace Sharing

At Cloud9 we develop the codebase on Amazon EC2 instances with a feature called Remote SSH. Our team is spread out over 8 countries (Netherlands, USA, Egypt, Russia, Armenia, Poland, Italy and Greece) working on many different areas of the codebase, all from different operating systems and browsers. Is this a problem? Not at all.

When one of our team members needs help they simply share their workspace URL with another colleague. That’s it. No setup cost, no switching branches, no configuring of dependencies. Instantly we are in the same environment together, seeing each other edit in realtime. We can even chat with each other in the provided collaboration bar.

Flexible for Many Uses

We also use workspace sharing in a way you might not expect: providing support to our own users. If a developer on is having trouble with their workspace we simply ask for their workspace URL.

Teachers, students, conference-goers et al have found this same technique incredibly beneficial. No longer are they operating blindly, sending each other links to gists that only give a partial view of what’s wrong. By sharing the same workspace your fellow developer is right in the driver’s seat with you.

The Power is in the Platform

Cloud9 is more than an IDE. The power is in the platform, where your code and processes are separated from the computers being used. For the developers and support staff at Cloud9, plus thousands of developers around the world, the platform has become an indispensable part of daily development.

It might just be the right fit for your development needs too.





* Required fields

  1. JL Griffin says:

    Ok I’m 100% In Love with Cloud9 (which is appropriately named :D ). Best IDE Ever! But one thing i have been wondering about this form of collaboration is how you handle conflicting changes in documents. For example, 2 people have the same document open in the IDE in 2 different locations, then one makes one change one makes another and they both hit save. How does Cloud9 handle the conflict in changes? Are the documents merged somehow? And if so when do the 2 developers see each other’s changes? Also what happens if they have both made a separate change to the same line or even the same character? how is this handled?

    Thanks In Advance! And Keep it up!

    JL Griffin

    • Matt Pardee says:

      Hey JL, thanks for all the praise!

      We handle multiple developers editing the same document by placing the document into our collaboration server. This way everyone editing or viewing the file sees the changes everyone else makes in realtime (think Google Docs). Techniques for resolving conflicting changes are extensive and varied; we use our own technique (which is personally a bit over my head and therefore I won’t try to detail it here). But the end result of all these techniques is the same: N developers should be able to work on a document and nobody will overwrite another’s code.

      Since the collaboration server is running automatically when multiple devs have a file open, the server is keeping track of all the changes. So there’s no need to worry about when you hit save and how that’s handled.

      Collaboration is used in other ways too, such as when you are debugging a Node.js application. Every developer in the workspace will see the messages from the debugger as well so you can all share in the debugging session and tackle problems together. Think of it like standing at another developer’s desk — that is the experience we try to replicate when sharing a workspace.

      Cheers and thanks again for writing!