How to Find the Right Collaborative Coding Tool for Remote Pair Programming
source link: https://dzone.com/articles/the-right-collaborative-coding-tool-for-remote-pair-programming
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
How to Find the Right Collaborative Coding Tool for Remote Pair Programming
This guide walks you through different aspects and capabilities of collaborative coding tools to help you decide which one will be a perfect fit for your team.
Join the DZone community and get the full member experience.
Join For FreeRemote development is clearly here to stay, and when you need to collaborate with your team, starting a Zoom meeting or Hangout (er … Google meeting) is probably something you think of doing first. However, several developer-focused solutions that are much better suited for remote development are available today — but how do you know which one to pick? This guide will help you make that decision.
As you read this guide, you might wonder how I know an awful lot about these solutions. The fact is, I work for Genuitec, which makes CodeTogether. What you see below is the result of our continuing study of this landscape to see how we stack up against our competitors and to 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 deeply into the quality or capabilities of each feature.
Screen Sharing Software vs IDE Plugin
While the vast majority of remote pair programming tools are IDE-based, there are a few that are based around screen sharing. 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.
Examples of screen sharing solutions include Drovio (formerly UseTogether), Tuple, and CoScreen.
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 code-base, 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 therefore focus only on IDE-based solutions.
In this guide, we’ll look at what IDEs they’re compatible with, how secure they are, how capable the guests' development experience is, additional features like audio/video calling, and finish up with a pricing comparison.
Compatibility
Perhaps the easiest way to narrow down your choices is to check to see if the IDEs are supported by the tool. Every developer wants to use their preferred IDE because they're familiar with the 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 is also a benefit when a developer doesn’t have access to their work machine. Maybe they’re on vacation, sunbathing on a beach, but you don’t like their choice of words on the home page; got to get that fixed ASAP, right?
Tool / IDE
IntelliJ
Eclipse
VS Code
Browser
➖1
➖2
➖3
1Most recent release in October 2020, does not appear to be in active development.
2Alpha release from May 2020, does not appear to be in active development.
3Most recent update was in January 2021.
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.
Other IDEs and Editors
Live Share is the only solution in this space for Visual Studio, and for XCode, you may be forced to use a screen sharing solution instead.
The solutions that work for VS Code typically work for derivatives of VS Code as well. These include VSCodium, Code Server, Coder, GitPod, OpenVSCode Server, Eclipse Theia, and others.
If you’re looking for editor support, Floobits supports Sublime Text, Atom and Neovim, and Emacs in addition to IntelliJ. Teletype for Atom is an Atom-specific tool, too.
Security
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.
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?
On-Premises
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, allowing only authenticated users convenient and secure access to the solution.
Tool / Feature
End-to-end encryption
On-premises distribution
Source stays on host
Single sign-on
Code With Me
CodeTogether
Duckly
➖1
Floobits
➖2
GitLive
Live Share
Saros
1End-to-end encrypted up to 4 participants only.
2If you use the free plan, your source will be hosted in a publicly accessible repository.
Programming Capabilities
When connected to a session as a guest, what are the language capabilities and other IDE features that you have access to? Do you get content assistance and validation, can you refactor code, do you have access to terminals and consoles, can you run tests on the host, etc.? 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 features are as good as useless and will be marked absent in the table below.
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.
Tool / Feature
Content Assist
Validation
Quick fixes
Navigation
Refactoring
Shared Debugger
Shared Terminal
Shared Servers
Run Tests
Code With Me
CodeTogether
➖1
Duckly
Floobits
GitLive
Live Share
➖2
Saros
1Limited refactorings available
2Via 3rd party extension
Session Capabilities
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?
Tool / Feature
Number of Participants
Anonymous Use
Immediately Available
Code With Me
CodeTogether
Duckly
Floobits
GitLive
Live Share
Saros
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
When in the session, does the solution provide its own text chat or audio/video calling capabilities? At Genuitec, we believed developers would prefer using their regular communication platforms like Slack or Teams, but every now and then, we get a request for integrated communication. This is why we are adding these capabilities in CodeTogether 4.3, along with the additional ability to screen share, which we admit can be useful in some circumstances.
Tool / Feature
Text Chat
Audio
Video
Screen sharing
Code With Me
CodeTogether
Duckly
Floobits
GitLive
Live Share
Saros
1Coming in CodeTogether 4.3 in October 2021
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.
Tool / Feature
Free Tier
Personal Use
Organizational Use
On-Premises
Code With Me
30 minute sessions
3 guests
$50 / year
$100 / year
$400 / year
CodeTogether
60 minute sessions
3 guests
$96 / year
Same as personal
$30-$70 / year
(discounts based on team size)
Duckly
60 minute sessions
6 participants
$120 / year
Same as personal
Floobits
5 public workspaces
$180 / year
$120 / year
(sold in multiples of 5 users)
$100 / year
GitLive
40 minute sessions
$60 / year
Same as personal
Live Share
All features accessible
Saros
All features accessible
Closing Thoughts
Do you already use one of these solutions? If so, how would you rate it, what features do you find invaluable, and what features do you miss? I’d love to hear what you think, especially if you have suggestions for improving the article, so do leave a comment. I hope you’ve found this guide to be both fair and helpful in picking a solution that would meet your needs. Happy coding!
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK