We’ve recently spent quite a bit of consulting time developing Visualforce and Apex code. Each client seems to prefer their own Integrated Development Environment (IDE), and so we’ve had an opportunity to try out nearly all of the leading Force.com developer tools in the last year. In this article, we’ll list the major tools and their pros and cons.
Safe Harbor Statement!
Some of these tools were only used briefly. In some cases, they were used to satisfy a short-term need over 3-4 days. As such, we can’t claim to be an expert on their use. Perhaps with more time the hidden features of each tool will be revealed. So consider these findings as “initial impressions” only. We do encourage you to research any tool before making final decisions.
One other disclaimer: this article is not intended as negative feedback to anyone who crafted these IDE tools. We understand the teams that work on these tools are very talented, and don’t mean to imply that any particular tool is a failure.
With that out of the way, on to our first development tool!
Force.com Developer Console
Everyone starts with the developer console. It is a web-based tool that can be accessed within Salesforce by clicking your name > Developer Console. Some developers feel that “real” development uses an installed IDE, so the Force.com IDE is viewed by some as “entry level” development. But the deep, dark secret is that you can accomplish 90% or more of Force.com Development from inside this tool.
- Can be accessed from everywhere, with no machine setup required.
- Good syntax support for things like folding, compile errors, etc.
- Great log integration. Doing a system.debug in the anonymous window will open the log straight away.
- This tool seems to be at the center of Salesforce’s dev tools roadmap. See this posting for discussion with one of the team members: http://salesforce.stackexchange.com/questions/15654/force-com-ide-still-officially-supported
- Limited workspace options. Because the tool is in a single browser window, there’s no support for side-by-side panels or multi-monitor setups. And some dialog panels are just tiny.
- The tool still has some bugs to iron out. I’ve been in situations where I needed to code in it for several hours straight, and the Developer Console starts getting slow after such use. Save everything and hit F5 to get sped up again.
- No customization for font, color (minor), plug-in extensions, macro keys, etc.
- No community support. Not that open-source will solve every problem, but it’s customary for IDE’s to have a rich community of contributors.
Final Score: 8
Eclipse Force.com IDE
Eclipse is a well-known developer tool, with support for many languages. It immediately came to mind as the “professional-grade” developer tool. But like any other tool, it has its fair share of issues.
- Deployment options are the #1 advantage over the web-based developer console. Using this IDE, you can pull down all the metadata and clone it to a repository or a Developer Edition!
- The #2 advantage is metadata copying. If you have a picklist that needs to be used on multiple objects, a quick copy/paste will adjust your fields quick and easy. (Granted, global picklists will reduce this need.)
- Eclipse also has very powerful panel and workspace customization options. (That’s great for people who use a multi-monitor setup!)
- It also has decent support for shortcut keys. My favorites include Ctrl+L (jump to line #) and Ctrl+M (Show/Hide all panels)
- Eclipse could be viewed as a gateway tool to Android and Java development, if that is your goal.
- Community support: there are lots of interesting plug-ins for build processes, UML, etc. (Of course, few of these are Salesforce-specific.)
- The #1 problem with Eclipse is the setup process. Salesforce only supports specific versions, and Eclipse itself is very temperamental about your Java version and memory settings. It’s common to have memory crashes in the first few days, until you find the right settings in Eclipse.ini
- Salesforce support feels like a half-hearted add-on. For example, after querying in the Schema Explorer, you can’t copy any of the IDs. And there no code folding, hinting or highlighting for Apex?
- It may just be me, but it’s also hard to dig up the logs; I ended up using the web logs.
- Most importantly, this tool isn’t on the future Salesforce roadmap. Again, see this posting for discussion: http://salesforce.stackexchange.com/questions/15654/force-com-ide-still-officially-supported
Final Score: 7
Mavensmate for Sublime Text 3
The UI and setup were so smooth, I expected it to be a lightweight tool. But…it’s surprisingly powerful.
- Minimal setup. You’ll be up and running in 15 minutes.
- Highly customizable with extensions, fonts, themes, etc.
- Excellent settings for multi-panel, side-by-side comparison, etc
- Supports the same repository and deploy options found in Eclipse (wow!)
- Amazing shortcuts. For example, Right-click > “Go to Definition” to jump to a particular method.
- Mavensmate tries to enforce a “no mouse” workflow. There are almost no buttons, so you end up reading the menus a lot.
- Related to the point above: there is a learning curve while you are getting used to the shortcuts, etc. During this time, the rest of the team are racing around the tool like greased lightning, giving you an inferiority complex. (Which you will then blame on the tool.)
- I got this error while deploying, and had to jump back to Eclipse. (The bug has been fixed, but that still cuts into the overall experience.)
Final Score: 9
We’ve crossed paths with other tools that weren’t full IDE’s, but are extremely useful for Force.com development. They include:
- Developer Workbench: this is a very well-kept secret, but the Developer Workbench is a web-based API and schema explorer. It used to be my primary schema tool, and is still very handy. Important tip: this allows bulk download of SOQL results, which is helpful during data cleaning.
- DataLoader.IO: unlike the installed Apex Data Loader desktop tool, this web-based data loader from Mulesoft will match record lookups by name. It will also upload the new ContentNote object without making individual text files.
Again, this isn’t an exhaustive list. But hopefully this information can guide your “short list” when selecting developer tools. Need even more tools? Another list can be found here: https://developer.salesforce.com/page/Tools
See something we missed? Feel free to contact us!