Comparing IDEs for Salesforce Development
Comparing IDEs for Salesforce Development

Comparing IDEs for Salesforce Development

07/12/2016 by Roger Mitchell
Exploring the IDEs and tooling available for Salesforce developers, especially considering recent updates from the MavensMate team about suspending development.

Developers love tools that make their lives easier and it should come as no shock that Salesforce developers have different backgrounds and preferences for their integrated development environment (IDE) of choice. The landscape has shifted since I started in the Salesforce ecosystem six years ago and the recent news about suspension of MavensMate development might have some worried about their tool of choice going forward. Let’s dive into the options that developers have available for writing Apex, Visualforce, and Lightning Components with a review of some popular IDEs.


Developer Console

The Developer Console is an officially supported Salesforce tool for developers that want a web-based experience for coding and debugging. Available by clicking Your Name → Developer Console, there are a whole host of features that users can leverage, such as debug logs, test execution, SOQL queries, and other tools for tuning performance.

Modifying existing classes and pages is available, as are the newer Lightning related metadata components, but the lack of features from more robust IDEs and text editors make this a bit of a secondary tool for hardcore developers. Often it is more useful to copy and paste code out of the Dev Console into a text editor and paste it back, simply because of the flexibility that other apps offer. Dev Console is a great resource for anyone getting into Salesforce development, but seasoned devs will be venturing here for specific features and quick fixes.


Metrics

  • Web-based, but requires internet connection

  • No direct integration with source code repositories nor version control

  • No ability to deploy between environments

  • Offers performance profiling, has support from Salesforce engineering team

  • Free (included with your Salesforce license)

Bottom Line: great for beginners to learn development, helpful for debugging issues with existing code, but is closer to Chrome’s Dev Tools than an IDE.


Force.com IDE Plugin for Eclipse

The Force.com IDE Plugin is the original gangster for Salesforce developers and continues to have support from Salesforce. While it acts as a plugin for the Eclipse IDE, it’s worth noting that the features available with these two tools together is a great resource for developers that are coming from a more traditional IDE route. The Schema Explorer acts as a great resource that predated Workbench, allowing for devs to explore metadata with precision.

While other plugins offer support for Lightning today, the Force.com IDE does not. Salesforce engineering is releasing support for this in an update available within the next month, which will include code highlighting and hints. Eclipse is likely losing popularity with devs in favor of text editors, and arguably isn’t the most fashionable way to code, but it likely is the choice for enterprise devs that split their time between Salesforce and other languages (e.g. Java).


Metrics

  • Windows, Mac OS X, and Linux

  • Eclipse offers ability to work with source code repositories

  • Able to deploy between Salesforce environments

  • Familiar setup for Java developers, Schema Explorer is helpful tool for exploring metadata without Workbench, has support from Salesforce engineering team

  • Free (included with your Salesforce license)

Bottom Line: it’s been around forever and still getting love from Salesforce, so if you had to pick a place to start as a seasoned dev, Eclipse with the IDE plugin is not a bad choice.


MavensMate

MavensMate provided a great alternative to using Eclipse when it was released a few years ago, and is available as a plugin for the Sublime Text and Atom text editors. These editors are widely used by developers that prefer a lighter weight experience for writing code and both have a whole suite of plugins available to assist with development or UI tweaks for the stylish coder. Over the past few years, MavensMate has gained more features to assist with coding, deployments, and testing.

Two weeks ago, there was a flurry of activity on MavensMate’s GitHub page due to Salesforce disabling TLS 1.0 for any sandbox orgs. This also coincided with a post from the main supporter, Joe Ferraro, that development has been suspended on MavensMate; congratulations are in order for Joe, who has a newborn member of his family! While development of MavensMate is on hold (and will likely resume later this year), there’s a version 7 beta available that is worth setting up to keep calm and code on.


Metrics

  • Windows, Mac OS X, and Linux

  • Acts as a plugin to text editors that support plugins for handling source code repositories + version control

  • Able to deploy between environments

  • Lightweight tool allowing for users to leverage either Sublime Text or Atom with their other favorite editor plugins, retro arcade games available when waiting for test runs and deployments

  • Free and open source

Bottom Line: development is currently on hold and there are some nuances in the user experience, but it’s the most enjoyable if you prefer editors to IDEs.


Aside.io

Aside.io is like Cloud9, but only allows for Salesforce development. As a web based tool, it is impressively fast to manage existing files and create new metadata. The tool leverages four main functions to segment functionality: Code, Test, Push, Data. Each of these lets developers spend time writing code, executing tests, downloading package.xml and ZIPs to manage deployments, and running SOQL queries against their org.

This has a steeper learning curve due to choice in icons for various functions in the toolbars and  could benefit from a bit of usability improvements, though offers targeted functionality for the cloud-based Salesforce developer that wants a cleaner or more “zen like” editor experience than Dev Console.


Metrics

  • Web-based, but requires internet connection

  • No direct integration with source code repositories nor version control

  • Create a package.xml file or ZIP for deployments and drag/drop these files into your target org for deployments

  • Manage Apex, Visualforce, static resources, and custom objects with ease

  • Free

Bottom Line: it’s clean and crisp, and feels a bit more fun to use than the Developer Console, but with most web-based tools, you need the internet for this to shine.


IntelliJ IDEA with Illuminated Cloud

Within IntelliJ IDEA, devs can leverage the Illuminated Cloud plugin for their Salesforce development needs. IntelliJ is a great alternative to Eclipse and has a community of plugins available. Illuminated Cloud is unlike all of the other tools mentioned thus far, as it requires a license to use after the 30 day trial period. Running through its features, it’s nearly at parity with the Eclipse plugin.

Based on a trial run of this, there are tons of features that are beneficial for users that love IntelliJ and don’t want to switch to another IDE. Illuminated Cloud brings a majority of the support that the Eclipse plugin offers, and improves the editors for JavaScript and CSS within IntelliJ’s Community Edition (read: free!). Also, a minor usability hit of using IntelliJ is that the compile file shortcut will skip your music to the next song on macOS (Cmd + Shift + F9).


Metrics

  • Windows, Mac OS X, and Linux

  • IntelliJ allows for managing source control repositories, and has a nice version control system without any work

  • Illuminated Cloud allows for deploying to different orgs

  • Robust functionality for code completion and validation, manage static resource bundles, offline Apex debugger

  • Illuminated Cloud is $65 per license with some volume discounts, and IntelliJ Community Edition is free, but will set you back $149 per year as an individual or $499 per year as a business if you want the pricier, more feature rich IntelliJ Ultimate Edition

Bottom Line: if you already use IntelliJ, you’re already using Illuminated Cloud; if you aren’t using IntelliJ, give it a shot with Illuminated Cloud and be prepared to fork over a few slices of artisanal toast.


Cloud9

Cloud9 has been around for a while and offers a cloud-based IDE for developing in various languages. A benefit of this is the abstraction away from hardware level constraints that may arise with using your “work” laptop versus “hobby” machine, etc. Cloud9 has launched support for Salesforce development and allows for signing into an org and starting to develop immediately.

Arguably the best feature of Cloud9 is their “Google Docs for code” approach; users are able to write code and share a workspace with colleagues or friends, and those people can jump into a file and make changes live. This is a huge step up for those looking for a mentor or doing remote pair programming.Like its native siblings, a bash shell can be used for handling commits, and like its web-based siblings, an internet connection is required to do any work with this tool. It’s best to consider this a hybrid of Sublime and Dev Console.


Metrics

  • Web-based, but requires internet connection

  • Built in bash shell and has integrations with GitHub and Bitbucket repositories for your account

  • Automatic bidirectional sync of code from Salesforce to IDE, though no deployments to different orgs

  • Dubbed the “Google Docs” of coding, you can have multiple people in the same file working together

  • Free for 1 Salesforce workspace; premium users can create an unlimited number of Salesforce workspaces (premium pricing starts at $19 per month)

Bottom Line: social coding with your friends or mentors is a great feature, but the 1 workspace limitation will be difficult for anyone that spends a majority of their week working on code in a variety of environments.


Welkin Suite

As opposed to the last two options that sit within Java IDEs, Welkin Suite has built upon Visual Studio from the .NET side of the developer world. Welkin Suite is currently in beta and only available for the Windows platform, though their Twitter handle has promised support for macOS later this year. This IDE packs a lot of the functionality available in the other plugins, along with a bundled data loader, the ability to organize your metadata in folder structure different than what is returned from Salesforce, and integration to #askforce about a code snippet (including a screenshot!).

With that said, the features and experience is highly targeted to the MSDN developer that is familiar with patterns of Visual Studio. This is definitely worth noting for those that have not experienced this style of coding before, as it’s not directly related to Welkin Suite and their feature set.


Metrics

  • Windows only, though support for Mac OS X coming this year

  • Offers support for source code repo and version control without switching to terminal or GUI app

  • Able to deploy between Salesforce environments

  • Offers developers the ability to #askforce directly from IDE to tweet their question and screenshot of their code, customizable folder structures, built in data loader

  • Free; currently offered as a beta, so pricing might come later

Bottom Line: nifty features for #askforce and data loading do not make up for its lack of support for macOS and the frustrating user experience if not familiar with Visual Studio.


There are certainly other tools and options available for developing on Salesforce, and some tools have their targeted use cases, while others try to be the kitchen sink. Also, with the rich set of APIs that are available, developers can spin their own tools using a combination of things like Node, Gulp, and the Force.com Migration Tool. Personally, I’ve found it’s most useful to combine MavensMate and Developer Console for any work that we do at Arkus, but that’s partly a choice based on habit.

As a bonus, the Product Manager for Platform Developer Tools (Greg Wester) shared some news with us about the future of developer tooling. The team at Salesforce is committed to investing in their existing tools (including the Force.com Command Line Interface) to help improve the developer experience, and are committed to providing the necessary APIs to allow tooling partners (new and existing) to continue creating great products.

This year’s Dreamforce will include announcements for features that developers have been long awaiting, as Salesforce continues to position developer experience as an important focus for their internal and partner engineering teams.

So, which tools are you using for Salesforce development? Do you use just one or a mix based on the use case? Let’s start up the discussion below in the comments, via Twitter @RogerMitchell, on our Facebook page, or in the Success Community!