Cloud9 IDE for Salesforce review

Cloud9 IDE for Salesforce review

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?

The Cloud9 IDE has been around for a while. It’s a cloud based IDE which supports over 40 languages including PHP, Ruby, Python, and Javascript. More importantly, it now supports Salesforce development (currently in pre-release, there may be bugs!) and has support for Lightning (yay!).

The IDE is written in Javascript, and uses Node.js on the back end.

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…

Shut up and take my money!

How it looks

Cloud9 IDE Screenshot

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

Cloud Based

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

The code completion is a bit hit and miss sometimes, but better than other IDEs I’ve used for Salesforce. Much better! I couldn’t really find a pattern to what was supported and what wasn’t, it just sometimes worked and sometimes didn’t. The Lightning and Javascript auto-complete appears to be much more solid, which really helped me in getting to grips with Lightning.

Lightning Support

This is what bought me to Cloud9. The Lightning support is pretty good, and as you can imagine, support for HTML and Javascript in general is strong. Auto completion is really handy while you’re trying to remember how the bindings work and the names of some of the built in APIs.

Side By Side View

Split View

Want to view your unit tests and the code under test side by side? Cloud9 has you covered.

File History

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!

Git

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.

Collaboration

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.

Unit Tests

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.

Tests

Code Coverage

code coverage

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:

Auto test

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.

Price

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.

Conclusion

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.

14 thoughts on “Cloud9 IDE for Salesforce review

  1. brady@c9.io'Brady Dowling

    Full disclosure: I work for Cloud9.

    Well done here, some good, honest feedback. A few things to note, you do have access over how things are synced. There is documentation on configuring syncing (https://cloud9-salesforce.readme.io/docs/metadata-sync) that needs to be updated at time of writing but you can click the little dropdown arrow next to the sync arrows icon on the top and then configure from there.

    Also, a little pro tip is that you can go to settings and turn on experimental (beta) features to have a taste of things that aren’t fully baked yet. Right now, one of those things is a Git UI and that sounds like something you might be interested in.

    Reply
    1. Chris Aldridge Post author

      Hi Brady,

      And there I was thinking you were just an online marketing tool with all the emails I’ve been receiving from you :-)

      Thanks – I’ll take a look at the metadata sync. I guess what I really would like (and I’ll update the review) is the ability to force a file to sync at the click of a button. A few times, files seem to have not synced up properly and there’s no way to force a sync without having to change the file and re-save. In fairness, this has only happened a couple of times. The auto-sync generally works 99% of the time.

      I’m looking in the experimental features list, but no sign of a Git UI. Do I need to do something specific to make this available?

      Reply
        1. Chris Aldridge Post author

          Ahhh – that’s it. I was looking for something which said “Git” or “Source Control”. I’ll have a play with that later. I’ll update the post too – thanks for the info.

          Reply
  2. matthijs@c9.io'Matthijs

    Full disclosure: I work for Cloud9 as well :)

    Just to clarify: the $19 Cloud9 for Salesforce includes unlimited orgs.
    We know Salesforce devs are awesome project jugglers and we totally support that :-)

    Cheers,
    Matthijs

    Reply
    1. Chris Aldridge Post author

      Thanks for the clarification – but that’s unlimited private project orgs right?

      Presumably, I’d need to acquire an Organization licence to work on customer orgs?

      That said, I do have about ten private developer orgs, so still handy!

      Reply
  3. matthijs@c9.io'Matthijs

    Hi Chris,

    Nope: our Organizations plan will entail new features for Teams, and bear no relation to Salesforce orgs. We’ll discuss having a different naming appropach :)

    Matthijs

    Reply
    1. Chris Aldridge Post author

      Ahhh, excellent. Maybe just a slight rewording from “Private Projects”. That’s great news though, you’ve got my money…

      I’ve updated the post with some of the points in these comments.

      Reply
  4. dbr@outformations.com'Don Robins

    Great review Chris, thanks very much. I too have been exploring Cloud9 and comparing to the other IDE options, especially with my more recent focus on development and instruction with Lightning Components. One thing that appears to be an impediment for me if being able to diff metadata files on my hard disk – such as comparison of Sandbox vs Production metadata state. I guess I could simply use git repos with dumps into folders, but wondering if you explored this aspect. When using the desktop based IDE’s the files are just there to compare with diffing tools. Your thoughts welcome.

    Reply
    1. Chris Aldridge Post author

      Hi Don,

      Yes – I have also encountered that issue.

      Using Git repos might be over complicating it a bit. I still have Eclipse installed on my machine, so if I need to do a metadata diff I simply pull the metadata down into Eclipse and do it there. The org is essentially the master for all of the code and metadata, so just pulling the code down from Eclipse is pretty straightforward. If you change anything and push it back up to the org, Cloud9 should detect the difference and automatically sync it back into your Cloud9 workspace.

      It does mean essentially having two IDEs connected up to your projects, but it’s not that often that I need to diff two projects. If I do, I just refresh all in Eclipse and then use DiffMerge to view the differences.

      Reply
  5. krisallyde@gmail.com'Chris

    Interesting but somehow impossible to create new apex class/trigger/vf/lightning components. Clicking “new” just create an empty logicless file not sync to the server… That’s quite limiting to say the least.

    Reply
  6. marshall@gotspeech.net'Marshall Harrison

    I am really liking the Cloud9 IDE. I have found that a lot of the issues I have encountered can be cleared up by restarting Chrome. I’ve tried using Firefox and I’m not sure yet if it is better than Chrome.

    For example: when I clicked the + to open a new tab to run an intermediate window for SOQL Chrome display the window across the whole screen. and All I could get was the JavaScript window. There was no option in the bottom right corner to switch to the Force.com window. Restarting Chrome cleared that up.

    I’m not sure what broke Chrome but it appears to be a Chrome issue and not a Cloud9 issue.

    Reply
    1. Chris Aldridge Post author

      Hi Marshall,

      I haven’t come across that one personally. I’m using chrome (on Mac) and haven’t had any issues like that.

      I did have an issue once where the IDE just refused to talk to Salesforce anymore. I simply deleted the workspace from my dashboard and recreated (which takes about two minutes) and everything was fine again. Not sure what happened there.

      Glad you’re enjoying Cloud9. I’m still using it daily and really glad I made the switch from MavensMate and Sublime!

      Reply
  7. dcasey@talentrover.com'Davin Casey

    Is it possible to change the default file structure in Cloud9?

    For example, the C9 structure seems to be:

    workspace
    – classes
    – pages
    – etc
    -*git*

    Whereas the structure I usually use is:
    -build
    –*build tools*
    -src
    –classes
    –pages
    –etc
    -*git*

    I could always change the file structure in my repositories to match Cloud9, but that seems like a lot of effort.

    Davin

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *