I decided to give the Cloud9 IDE for Salesforce a try last week. My interest was piqued during a talk by Diego Ferreiro Val from Salesforce on Lightning a couple of weeks ago. When I asked him which IDE he used, he mentioned the usual suspects but also recommended I check out Cloud 9.
I’ve been spending quite a bit of time playing with Lightning lately, and the other IDEs don’t appear to support it very well. Faced with the prospect of having to use the Developer Console, I signed up for Cloud 9’s free trial in desperation. I’m glad I did!
What IS the Cloud9 IDE for Salesforce?
It’s free, right?
Unfortunately not. Sad face…
Once your free trial expires, you’ll be charged $19 per month if you want an individual licence. This gives you unlimited projects and workspaces (verified in the comments below). The website may be slightly out of date because it specifies private projects and three workspaces for an individual licence, but apparently that is not the case.
The IDE is packed with features, and $19/£12 per month is not a massive asking price…
How it looks
The layout of the screen is fairly standard. You’ll be right at home if you’re used to Eclipse, Visual Studio, or pretty much any other IDE in the entire world.
It has the usual bells and whistles: Class outline, project navigation, a test UI, and even includes tabs at the bottom of the screen for quickly running SOQL queries and anonymous apex.
How does it work with Salesforce development?
Mostly, it’s really intuitive. You create a new workspace up in the cloud, and allow access to your org via OAuth. The IDE then syncs the files from Salesforce to your cloud based workspace, and the rest works as you’d expect. You edit the files, save them, and they sync back up to Salesforce automatically and asynchronously. You’ll receive an error if the files didn’t sync, and the IDE checks periodically for changes to files in your org and pulls them down.
The bits I liked
No installation, and run it from any machine at any time. Plus, when you work in SaaS, you have to be pro cloud, right?
Non-disruptive file syncing
In Eclipse, saving to the server locks up the IDE. Lots of things do, in fact, and that annoys me. The Cloud9 IDE automatically syncs everything up to Salesforce asynchronously. Hit save, and the file is saved down to your workspace immediately. The IDE then pushes this up to Salesforce in the background and lets you know if there’s an error.
Auto code completion
Side By Side View
Want to view your unit tests and the code under test side by side? Cloud9 has you covered.
Every time you save your file the old version is archived off. Right click on a file and select “file history” to view all of the changes to the file. I’m not sure how long it retains changes for but I generally realise I’ve broken something pretty quickly, so this is really handy. Great feature!
The IDE has built in support for Git, with connections to Github and Bitbucket. Git integration is currently achieved via Git bash, which may put a few people off, but it looks like there is a Git GUI which can be switched on under “experimental features” and will presumably be mainstream fairly soon.
I haven’t used this feature yet, but Cloud9 allows you to collaborate with colleagues remotely and edit code together in real time. Many of us work with colleagues remotely, and trying to do a code review over a screen share can be a real pain.
Cloud9 has lots of tools and features around unit testing. Some of them are unique to Cloud9 (as far as I know).
Run Tests Asynchronously
Tests are run asynchronously (looking at you, Eclipse!), which means that you can carry on working while you wait for those inevitable red lights. You’ll get notifications for failing tests.
Want to know which lines of code are not covered? Cloud9 shows code coverage directly in the IDE.
Continuously Running Unit Tests
I thought this one was a bug when I first encountered it. After making some changes to a piece of code, I was met with this when saving the file:
When you update a piece of code, the IDE automatically runs the tests associated with that code in the background and gives you immediate feedback if any of the tests are failing. This feature is great – find out immediately when you break something!
The bits I didn’t like…
Non-disruptive file syncing (again)
The file syncing is great, but it can be a bit hit and miss sometimes. Occasionally, the files just didn’t sync, which led me to believe that some code somewhere wasn’t working. I also had another issue where saving a lightning component was returning an obscure error, yet when I viewed the file in Salesforce it had actually synchronised correctly and the component was working as expected. I just had to close the IDE down and reopen to resolve this. Not a deal breaker, but I’m not 100% confident in the file sync at the moment. I’m sure this will all get ironed out shortly.
Some things appear to be, errr, magic?
I don’t appear to have a lot of control over some of the features of the IDE. Admittedly, that may be due to me just being too stupid to find the options (now clarified by members of the Cloud9 team pointing out some features I hadn’t picked up on), but I’d like to see a bit more control over the file synchronisation and the automatically executing tests. The unit test support is apparently still in beta, and it’s fantastic overall, but I’ve worked on an org which takes eight hours to run all tests and I wouldn’t want those kicking off every time I hit save.
Bugs (but not many)
I’ve probably used the IDE for around 30 hours so far, and I’ve only hit a couple of minor niggles. The IDE is still in pre-release so bugs are to be expected. I haven’t hit any showstoppers, but just be aware that there are still some gremlins in the system.
It’s not unreasonable to pay for an IDE, but I guess the fact that it is a paid application could be viewed as a negative compared to the free IDEs out there. Let’s compare it to the competition. The following IDEs are free.
- Eclipse and the Force.com IDE
- Sublime Text (optional purchase) and mavensmate
- The Welkin Suite IDE
- Salesforce Developer Console
At $19 (£12ish) per month, the IDE isn’t going to break the bank; Visual Studio costs $5,999 per year for an enterprise licence as a comparison. The burning issue here is whether most of us will be able to convince our bosses to part with £12 per month to help us do our job. Most of the bosses I’ve had would be willing to part with the cash if there’s a demonstrable increase in productivity, but it may take some convincing.
Without getting toooo excited, I really like the Cloud9 IDE. I spend a lot of my time writing Apex and Visualforce code, so having to flit between one of many mediocre IDEs depending on what I’m trying to do can be frustrating.
Cloud9 appears to have all of the functionality that I need in one place (or everything I’ve needed so far, at least). I haven’t found myself jumping back to mavensmate or Eclipse once over the last few days, which is quite surprising.
I’d be interested in seeing how the organization pricing tier will work. I’d love to see some companies adopting this IDE. When Silver Softworks takes on employee number two, I will definitely be offering them Cloud9. That’s not because I’m generous, it’s because I think it will make my staff more productive than wrangling Eclipse or Sublime/mavensmate.
If you’re looking for an elegant, responsive IDE for your Salesforce development then go and sign up for a free trial of Cloud9 and take it for a spin. I’d be interested in hearing your feedback.