Remote development is clearly here to stay, and when you need to collaborate with your team, starting a Zoom meeting, Slack call, or hangout (er … Google meeting) is probably something you think of doing first. Today however, several developer focused solutions that are far better suited to remote development are available—which one do you pick? This guide will highlight some of the best tools for remote development and help you make that decision.
Disclaimer: As you read this guide, you might wonder how I know an awful lot about these solutions. Well, I work for CodeTogether, which is one of the solutions covered in this guide. What you see below is the result of our continual study of this landscape, to see how we stack up against our competitors, and decide what we need to focus on next. This guide aims to be factual, and in an effort to remain unbiased, I do not delve too deep into the quality or capabilities of each feature.
Screen Sharing Software or IDE Plugin?
While the vast majority of remote pair programming tools are IDE based, there are a few that are based around screen sharing, such as Drovio (formerly UseTogether), Tuple and CoScreen. While Webex and GoToMeeting are known for being CPU intensive, these new screen sharing solutions are more performant and flexible. For instance, they support higher quality video and multiple cursors, making them more suitable for use when sharing an IDE.
Screen Sharing Disadvantages
However, nothing changes the fact that everyone in the session can only focus on one piece of code at a time—they can’t explore other areas of the codebase, run independent analysis, or make changes elsewhere. They have to be familiar with the IDE the host is using, and if the host jumps to another application, everyone loses access to the code. These fundamental screen sharing constraints make true collaboration with such solutions impractical. This guide will focus only on IDE based solutions.
Okay, so let’s move on to comparing the IDE based solutions. We’ll look at what IDEs they’re compatible with, how secure they are, how capable the guest dev experience is, additional features like audio/video calling, and finish up with a pricing comparison.
Compatibility—Is Your IDE Supported?
Perhaps the easiest way to narrow down your choices is to check the IDEs supported by the tool. Every developer wants to use their preferred IDE with familiar layouts, themes, UI, and most importantly, key bindings. Does your entire team use just one IDE? Or are there more IDEs in the mix? Even when joining sessions, being able to use their favorite IDE would make a significant difference to a developer’s productivity.
Being able to join sessions from a browser comes in handy when a developer doesn’t have access to a work machine. Maybe you are on vacation, sunbathing on a beach, but your boss doesn’t like your choice of words on the home page; got to get that fixed ASAP, right?
1 Most recent update was in January 2021.
2 Alpha release from May 2020, does not appear to be in active development.
3 Most recent release in October 2020, does not appear to be in active development.
With Code With Me, participants join using a special client that is downloaded the first time they join a session. The client is very similar to an IntelliJ IDE, but you cannot participate in the session using your regular IntelliJ IDE that you use for local development.
A multi-IDE CodeTogether session
Security—On Premises, SSO and End-to-end Encryption
There are several security considerations that make it easy to disqualify tools that don’t meet your organization’s security standards.
Is the code that is shared end-to-end encrypted? If it is, nobody can see your code, not the solution provider, nor any attackers in the case of a MITM attack.
No matter how secure the solution claims to be, some organizations will not allow code to leave their intranets. If this is the case, you need a solution that provides an on-premises distribution. For additional security, your organization might also require single sign-on support (SSO), allowing only authenticated users convenient and secure access to the solution.
Does the source code stay on the host machine, or is it transferred to the guests, who may then have access to it even after the session ends?
1 If you use the free plan, your source will be hosted in a publicly accessible repository.
2 End-to-end encrypted up to 4 participants only.
3 Multi-server, regional on-premises deployments are supported as well.
CodeTogether’s SSO Integration
Programming Capabilities—How Capable is the Guest Dev Experience?
When connected to a session as a guest, all the tools mentioned below share features like providing access to the entire project tree or workspace, not just the file the host has open. They also allow concurrent editing of files, even multiple developers editing in a single file simultaneously.
Beyond file access and editing though, what are the language capabilities and other IDE features that guests have access to? Do they get content assist and validation, the ability to refactor code, run tests on the host, and access to terminals and consoles for instance? Often, you might find a few language features available—but only in the context of the current file and incomplete, as they are being provided by your local IDE, which may not have the entire project context, or the language and framework support that the host has. These capabilities are hardly useful in a development context, and will be marked absent in the table below.
Content assist
Validation
Quick fixes
Navigation
Refactoring
Shared debugger
Shared terminal
Shared console
Shared server
Run tests
Run launches
Content assist
Validation
Quick fixes
Navigation
Refactoring
Shared debugger
Shared terminal
Shared console
Shared server
Run tests
Run launches
Content assist
Validation
Quick fixes
Navigation
Refactoring
Shared debugger
Shared terminal
Shared console
Shared server
Run tests
Run launches
Content assist
Validation
Quick fixes
Navigation
Refactoring
Shared debugger
Shared terminal
Shared console
Shared server
Run tests
Run launches
Content assist
Validation
Quick fixes
Navigation
Refactoring
Shared debugger
Shared terminal
Shared console
Shared server
Run tests
Run launches
Content assist
Validation
Quick fixes
Navigation
Refactoring
Shared debugger
Shared terminal
Shared console
Shared server
Run tests
Run launches
Content assist
Validation
Quick fixes
Navigation
Refactoring
Shared debugger
Shared terminal
Shared console
Shared server
Run tests
Run launches
1Limited refactorings available
2Via 3rd party extension
Shared Debugging with Live Share in VS Code
Session Capabilities—How Easily and Quickly Can You Host & Join?
Can the capabilities be used anonymously? This might be especially useful when you want to get a quick session going with someone you don’t normally collaborate with, or who just doesn’t have an account yet. How soon after you start the session is it actually usable? How many participants can you have in the session?
1A client download may be required before the session starts if you don’t have it installed, or if it is out of date.
Communication—Are Audio and Video Calling Supported Too?
When in the session, does the solution provide its own text chat or audio/video calling capabilities? With CodeTogether we initially urged our users to use their existing communication solutions like Slack or Microsoft Teams for voice and video, but several users said they’d prefer an integrated solution. The ability to screen share is definitely useful in some circumstances too, so we added all these capabilities to CodeTogether as well.
Screen sharing with Duckly
Pricing
As you can see below, all tools offer a free usage tier. I’ve listed the obvious restrictions of this tier, but there are possibly additional limitations as well. I don’t delve into trial period use, where all features are likely to be available for a limited period.
There are also several pricing models, and I’ve taken the cheapest possible per user price for the table below.
Free Tier
3 guests
Personal Use
Organizational Use
On-Premises
Free Tier
3 guests
Personal Use
Organizational Use
On-Premises
Free Tier
Personal Use
Organizational Use
On-Premises
Free Tier
6 participants
Personal Use
Organizational Use
On-Premises
1 Sold in 5-user blocks
2 Includes volume discount
3 Volume discounts available for 100+ users
Closing Thoughts
Do you already use one of these solutions? If so, how would you rate it, what features do you find invaluable, what features do you miss? I’d love to hear what you think, especially if you have suggestions for improving the article. You can always email me at info@codetogether.com or drop me a note on Twitter. I hope you’ve found this guide to be both fair and helpful in picking a solution that would meet your needs. Happy coding!