A large portion of any developer’s time is spent managing their development environment. In the past I’ve primarly used vms, whether local or in the cloud. That allowed me to setup project-specific environments without worrying about conflicting versions of runtimes, compilers, supporting libraries, and environment variables. But VMs have a tremendous amount of overhead when run locally in terms of disk space, memory, and start-up times.
I first heard about Cloud9 back in 2012. It promised to be your IDE in the cloud. That was a lofty goal to aspire to and it didn’t quite measure up. Fast-forward 3 years to today. Docker has has changed the way we manage VMs and has changed Cloud9.
Containers allow for each workspace to have their own isolated linux environment which means full command line access including sudo permissions. That in turn means you use Cloud9 for developing anything with build tools that run on linux. 1
It also has excellent GitHub integration. You can create a new workspace by cloning a GitHub repository. If you connect your GitHub account, Cloud9 will automatically generate an SSH key which is added to each of your workspaces so that you can push your changes back to GitHub.
The central feature of Cloud9 is their home-grown and open-source Ace editor which is beautiful and customizable. Cloud9 wouldn’t be possible without it.
Best of all, Cloud9 workspaces for open-source projects are free. The environemnts have limited disk space, memory, and CPU but I haven’t found that to be a problem.
The containers seem to have the most common tools pre-installed: git, node, ruby, pythong, php, and even npm and grunt. And if it that isn’t enough for you then you can just install it yourself. You can even run your own programs and connect to them over HTTP. 2
Cloud9 has changed the way I develop. It has removed the hassle of managing individual VMs. I am able to delete a workspace, recreate it, and begin coding again in minutes.3 There are many more features I haven’t tried or discovered yet; I look forward to seeing how they change my life too.