A List of the Top 8 Remote Pair Programming Tools
Pair programming has many benefits. One of them is to improve the quality of code. It can also reduce the amount of time involved in fixing bugs. The two programmers involved in pair programming usually work from the same desk with a single computer. This can make catching an error in the code faster.
However, in a remote pair programming scenario, developers don't share the same desk or computer. Hence there's the need for a good remote pair programming tool.
There are many remote pair programming tools out there. In this post, we'll go through a list of the top eight. Before we continue, let's take a look at the definition of what remote pair programming is.
What Is Remote Pair Programming?
According to Wikipedia, "Pair programming is an agile software development technique in which two programmers work together at one workstation. One, the driver, writes code while the other, the observer or navigator, reviews each line of code as it is typed in." Also, developers involved in pair programming may switch roles.
From the definition above, we can say remote pair programming is pair programming done by two or more developers who aren't in the same physical location. It's usually carried out via a screen share or IDE sharing tool.
Different remote pair programming tools behave differently and can be classified into multiple categories based on the way they function.
Categories of Remote Pair Programming Tools
Each tool in the top eight pair programming tools that we'll be listing in this post falls into at least one of the following categories:
- Collaborative integrated development environment (IDE): This is our first category, and this type of tool lets users invite other developers to collaborate directly in their IDE. Only the IDE is shared in this category.
- Single user sharing, dual user remote control: In this category, we have tools that allow a single user to share their screen while the second, third, and every other user can view and control the screen. That means only one user can share their screen at a time. However, both the sharer and the second party can control the device at the same time.
- Multi-user sharing, multi-user remote control: Here, multiple users can share their screens and control apps at the same time. This category offers the most interactiveness.
We've ordered this list from category 1 to 3, based on the level of flexibility of what can be shared and who can do the sharing. That is, from the first category with tools that only let users share their IDE to the third category that lets users share any app window with multi-share capability.
1. Live Share (VS Code)
Category: Collaborative IDE
Live Share is an extension for VS Code. It comes included in the latest versions of VS Code. This tool enables developers who use VS Code to collaborate in real time.
It's helpful when you need to fix a bug or work on a feature with other teammates who might not be in the same physical space as you. With Live Share, you can share all project files and even access the terminal with collaborators. Another nice feature of Live Share is the ability for a participant who doesn't have VS Code installed to join a session via a web browser.
2. Replit
Category: Collaborative IDE
Replit is a collaborative web-based IDE. That means no download or installation of additional software is required. Just open a web browser.
If all you want to do is just edit a piece of code with other developers in real time, Replit shines at such tasks. Another very helpful feature is that it has support for over 50 programming languages.
3. CodeTogether
Category: Collaborative IDE
CodeTogether is a tool that brings real-time collaboration to multiple IDEs. At the time of writing this post, the CodeTogether plugin is available for IntelliJ, Eclipse, VS Code, PhpStorm, and other JetBrains IDEs.
You can create a new collaboration session from any of the supported IDEs and share the link with other developers to join. After that, the developers who join can directly make changes to your code.
4. Teletype (for Atom)
Category: Collaborative IDE
Teletype is a package that brings live collaboration to the Atom code editor. In order to use Teletype, the package must be installed. Once that's done, you can create a session and share the link with team members.
If you use Atom code editor and would like to collaborate with other developers on your team in real time, Teletype is a great solution for just that.
5. Tuple
Category: Single user sharing, dual user remote control
Tuple is a screen-sharing app with remote control capability for macOS. With Tuple, one user shares their screen, while other users can view the screen and control applications remotely. Only the host can share their screen during a session.
Tuple is useful when taking part in remote collaboration and pair programming. All parties have keyboard and mouse control, hence it's possible for other parties on a session to fix issues in code by controlling the host computer remotely.
6. Screen.so
Category: Single user sharing, dual user remote control
Screen is an interactive screen-sharing app with a remote control capability and audio and video chat support. Only the host can share their screen, while other parties may have access to control the shared screen.
In Screen, each user has cursor and keyboard control that enables them to work on the host's device. Screen makes it possible for remote teams to code together as if they're in the same physical location.
7. Drovio
Category: Single user sharing, dual user remote control
Just like Screen and Tuple, Drovio allows one user (the host) to share their screen with team members. The team members can view and remotely control applications on the host's device as if they were in the same room.
One very convenient feature of Drovio is the ability for a second party to join a screen share session without having the app first. By sending an invitation link via email, a teammate can join a session link from a web browser.
8. CoScreen
Category: Multi-user sharing, editing and multi-user remote control
Last but not least on our list is CoScreen. CoScreen is a great tool engineering teams can use to screen share, edit and code together. It's the only tool on our list that offers screen sharing from different displays, multiple users, and all that concurrently.
Another feature of CoScreen that stands out is that it lets users select the application window to share. All users can share a window, unshare it, and share another window seamlessly all in a single click during a collaboration session.
You can download CoScreen to try it out for free here.
Final Verdict
We've come to the end of this list of eight helpful tools for remote collaboration and pair programming. Each tool has its own strengths and limitations. However, CoScreen stands out.
Unlike any of the other tools on the list, only CoScreen supports multi-user sharing and editing. Also, CoScreen lets users choose what window to share, which is optimal for privacy.
Remote pair programming requires true real-time collaboration. Because of that, Zoom, Google Meet, and other videoconferencing apps didn't make this list even though they have basic screen share features. The eight tools listed can improve the remote pair programming experience by supporting that necessary collaboration.
This post was written by Pius Aboyi. Pius is a mobile and web developer with over 4 years of experience building for the Android platform. He writes code in Java, Kotlin, and PHP. He loves writing about tech and creating how-to tutorials for developers.