“What tool do I need to write Apex and Visualforce code?” The answer used to be so simple! Once upon a time, Eclipse with the Force.com plugin (now collectively referred to as “the Force.com IDE”) was your only choice. Today, however, there are three major options:
In this post, we’ll examine all three.
What should an IDE do?
In my opinion, the key features that any Salesforce IDE should support include:
Everything else is gravy – really good, important gravy, perhaps, but still gravy. Let’s see how the three main IDEs measure up.
The Force.com IDE. The original IDE for Salesforce development, this one is based on Eclipse, the very powerful, extensible development environment for Java and other programming languages. An oldie, but a goodie, this is my personal favorite, as it allows you to develop code, examine metadata, copy the org’s code to your local file system (where you can store it in GIT or some other repository), compare and synchronize your local files with your org, connect to multiple orgs in the same instance, run anonymous code, explore the schema, query the database, deploy to other orgs, and much more.
MavensMate for Sublime Text. Based on the Sublime text editor, this IDE supports many, but not all of the same features as the Force.com IDE. Specifically, it allows you to develop code, examine metadata, copy the org’s code to your local file system, and compare and synchronize your local files with your org. It allows you to run unit tests and deploy your code, using a UI that some people find slicker than that of the Force.com IDE. As an added bonus, it features a few quick games (like Pacman and Tetris!) that allow you to do something other than twiddle your thumbs while you’re waiting for deployments and unit tests to complete. However, it doesn’t provide a schema explorer or query tool, so you need some other tool to access the Salesforce database. (Recently, MavensMate has added a rudimentary ability to get a list of fields for some [but not all] objects, but it’s far from a true schema explorer.) Nor does it allow you to connect to two different orgs (like sandbox and production): to do that, you need to run two Sublime/MavensMate instances, which I find unwieldy. The syntax highlighting is quite nice, though, and I find the code completion to be more reliable than in the Force.com IDE.
The Salesforce Developer Console. A relative newcomer, the Salesforce Developer Console is completely browser-based. Salesforce has been steadily enhancing it, with the result that it’s now much more stable and functional than its earlier versions were. With the Developer Console, you work directly with your org’s code – you don’t work with local copies on your file system. As a result, your code saves more quickly than with the other IDEs, but you lose the ability to compare your version of the code with the org’s version – all the Developer Console allows you to see is the org’s version. And while you can run tests, query the database, and even modify the records returned by a query, there’s no schema explorer, and no ability to deploy from within the IDE – you need other tools to perform those functions. In addition, the Developer Console is still a bit buggy – browser hangs and crashes aren’t uncommon. Given all this, I find the Developer Console to be useful when I need to make a quick change, but the fact that you’re dependent on the browser’s connection to the server makes it much less reliable for serious, long-term development.
Below is a summary of the main features of each environment:[table caption=”” width=”630″ colwidth=”210|140|140|140″ colalign=”left|center|center|center”]
Feature,Force.com IDE,MavensMate for Sublime ,Developer Console
View edit and save code and other types of metadata,✔,✔,✔
Code completion / IntelliSense,✔,✔,✔
Explore the schema,✔,,
Query the database,✔,,✔
Modify queried data,,,✔
Deploy to other orgs,✔,✔,
Perform other work (or play games!) while waiting for deployment to complete,,✔,
Run unit tests,✔,✔,✔
Run anonymous Apex code,✔,✔,✔
Monitor and examine debug logs for current user,,,✔
Edit Static Resources (text-based only),✔,✔,✔
Copy the org’s metadata to the local file system; compare & synchronize local files with the org,✔,✔,
Connect to multiple orgs in the same instance,✔,,
Requires no installation,,,✔
Which IDE is right for you? It’s largely a matter of personal preference. Fortunately, all three development environments are free. Also, they’re not mutually exclusive: you can use just one or any combination of the three.
Which IDE do you use, and why? Use the comment section below to let us know what you think!
Sign up for weekly OpFocus blog updates!