Today it seems hard to imagine that people called us crazy when we told them that we wanted to build the "Google Docs of IDEs" --- "That's just impossible!" they said. "Nobody will ever develop software in a web browser!"
Still, we kept the idea in the back of our minds. We had been dreaming about this for years, but it was never technically feasible. While, over the years, more and more of our daily workflow moved to the browser -- email, documents, social networking -- we still used basic text editors and heavy-weight IDEs on our desktops to develop such web applications. That's just silly.
Imagine the possibilities of moving your IDE to the cloud as well. You could access your code from anywhere, from any device. You no longer have to go through those lengthy software installs of not only the IDE itself, but also the -- often emulated -- runtime environment. You could share your code with anybody, simply by sending them a link, and would be able to collaborate instantly. It could revolutionize software development, by enabling pair programming with people on the other side of the world or by doing collaborative debugging -- the possibilities are endless.
Yet, it remained a dream for a long time.
Then, a new browser war happened. Google launched
Chrome, a new, super-fast browser. Google observed that pushing the web forward required taking JavaScript more seriously. Therefore, they built v8, an amazingly fast JavaScript engine. This development resulted in an arms race building the fastest JavaScript engine. As a result, JavaScript engines in all browsers today are an order of magnitude faster -- if not more -- than before.
The browser had come of age now, and rapidly became more and more capable. Capable enough to host the IDE we wanted to build. So, we decided to give building a cloud IDE a serious shot.
Today, little over a year later -- during which we built Cloud9 IDE from the ground up and went from 0 to 80,000 users -- we think we can truthfully say: we were right -- building an IDE in the browser turns out to be a pretty good idea.
Here's how we pulled it off.
ACEd it!
The first thing we developed is the core of any IDE: an amazing code editor. We built ACE, a high quality code editor with amazing performance. At the time, Mozilla was also working on a code editor called Bespin (later renamed to SkyWriter), taking a slightly different approach. After coexisting for a while, we decided to merge our efforts.
Today, ACE has a vibrant community of users and over 70 contributors. It has become one of the most watched and forked projects on Github. In addition, ACE has become the de-facto standard in code editing on the web and is used by companies like Github, Facebook, Adobe and VMWare.
However, ACE was just our first step in showing that code editing in the browser is not just a crazy dream. An IDE ought to be more than just a code editor.
Get Ready for the Launch
At the end of January after months of hard work, we launched the beta of Cloud9 IDE. An actual IDE in the browser, featuring multiple project, using ACE as code editor, git and github integration, debugging and many other features you would expect from an IDE.
Although the news broke early, we officially launched the product on DEMO in March of 2011.
Indeed. As it turned out, building "the Google Docs of IDEs" was possible, very possible. And yes, people did want it. By the spring of 2011 we already had 15,000 users. Even though we had only shown a glimpse of Cloud9 IDE's potential, people paid attention. Not only users, but VCs as well.
Building a Company
However, we were not going to take just anybody's money. We wanted investors that had more to offer than just a bag of cash, and we got them. In June we closed a total of $5.5 million in funding from Accel and Atlassian. Accel is one of the top VCs, world-wide, and invested in many top companies over the years, including Facebook. Atlassian is a leading provider of development tools, such as Jira and Confluence, that are used by thousands of enterprises. Both these companies provide us with not only financial support, but also decades of experience in building and running successful companies and in-depth knowledge of the industry.
More knowledge and experience comes from our board of advisors. Brendan Eich (Mozilla CTO and JavaScript inventor) brings a lot of technical knowledge to the table as well as a clear vision of the future of JavaScript, the main language we use to build our product. JJ Allaire, creator of the ColdFusion language and currently developing RStudio, brings us a lot of knowledge about how to build and position IDEs and build businesses.
Over the months that followed we focused on stabilizing of the product, hiring, and setting up an office in San Fransisco. Stability is very important, especially for a cloud product. We solved many stability issues already and we will roll out more stability measures early next year.
Node.js
We are still a small company, and an IDE is a large product to build. Therefore, we have to focus our efforts. Cloud9 IDE is almost entirely built using JavaScript, both on the client and the server. On the server we used node.js, a young, but rapidily maturing and growing technology that enables developers to easily build high-performance real-time web applications using the same language they already use in the browser: JavaScript. While there are a lot of modules available for node.js, and the community is growing quickly, it was still missing good tooling. And these days, a platform is not a platform without appropriate tools.
Therefore, for our fourth quarter of 2011, we decided to focus on making Cloud9 the best IDE for node.js development, and help node.js become a more mature product. Bert Belder, one of the node.js core committers, joined us to work full time on Windows support for node.js. In addition, Tim Caswell joined as a node.js community manager. Within the node.js community, Tim does not require introduction, he is the author of many great node.js modules and the howtonode blog.
Over the past months we turned Cloud9 IDE into a great IDE for node.js development, featuring a great debugger with live inspect and the ability to test your node applications on our servers and deploy them straight to Joyent or Heroku. Over the past months we have been working on many other node.js related features for Cloud9 IDE, which we are eager to release early next year -- be prepared to be blown away! In 2012 we will keep working on great node.js support, but expand to other platforms as well.
Features
Over the past year we've been adding a lot of features to Cloud9 IDE. We won't enumerate them all, but here is a selection: