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.
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.
- 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.
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
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
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.
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!
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
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
Cloud9 is the only IDE for Node.JS.
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
Cloud9 supports all the most popular programming languages.
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.
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.
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
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!