Remote/Virtual pair programming
Tags: codenewbie, remote, vscode, codereview
Published: 2021-05-18 05:10:03

Whenever you are learning or working together on a common codebase with your friends and colleagues you often need to discuss "things" and code review on GitHub is not enough.

Fortunately, other people had the same ideas and thought how nice it would be if you could:
* See the code on your computer (not via sharing the screen)
* Edit the code together
* Follow the cursor of one another while navigating the text
* Being able to interact with an integrated terminal on the other side
* Speak with each other without using another app

In May 2017 Microsoft has announced [Visual Studio Live Share](https://visualstudio.microsoft.com/services/live-share/) which changed how you can interact with your co-coder. 

Live share is available for VSCode as well as for visual studio.

As a long time PyCharm user I was longing to have the same feature and often opened the VSCode just so I can share the code and explain the thought process. 
After a long time, they finally delivered a similar feature with their [Code with me](https://www.jetbrains.com/code-with-me/).

## Comparison

### Live Share

* Uses Microsoft servers hosted on Azure (requires public internet access)
* To initiate the live share session you must sign in with Microsoft or GitHub account.
* Share the code via VSCode, Visual Studio or a Web browser
* Main Features:
  * Co-editing - let's multiple participants edit the code
  * Following and focusing - follow the cursor of others
  * Share terminals - see/use the terminal of the session organiser
  * Share server/Share port - expose a local server (eg. https://localhost:8000) to the participants so they can access your app.
  * Unlimited session length

Read [more detailed documentation about the Live Share features](https://docs.microsoft.com/en-us/visualstudio/liveshare/overview/features#features)

### Code With Me

* Uses Jetbrains servers, however, offers an on-premise solution for closed networks.
* Does not require any account to share the session
* Free session is limited to 3 participants and 30 minutes
* Not all InteliJ IDEs are yet supported
* Requires Code With me client app (included in IDE or standalone)
* Main features:
  * Audio and Video Calls - hear and see each other
  * Simultaneous editing - let's multiple participants edit the code
  * Following - follow the cursor of others 
  * Terminal access - see/use the terminal of the session organiser

Read [more detailed documentation about the Code With Me](https://www.jetbrains.com/code-with-me/)

## Summary

I used Live Share for quite a long time and it has helped me a lot and I cannot imagine working in a team without it!
It's quite easy to use however sometimes VSCode required me to sign in before sharing each session which I find a bit annoying mainly because I want to sing-in in different than my default web browser. 
I also noticed that it sometimes takes quite a long to connect or the session does not start correctly so you have to re-create the session.
Also switching between two IDEs "just to share" the code wasn't ideal.
Performance-wise I haven't noticed any difference and working on remote or local editor worked as expected.


When Code With me became publicly available I switched to it and was very pleasantly surprised how smooth the integration with PyCharm is. I haven't tried it on a large codebase to comment on performance yet.
Free session 30 minutes could be a limiting factor but also motivation to keep the meetings short!

As you can see both solutions offer a quite similar set of features with few differences so you may still need to switch between IDEs in some cases but concurrency in this sector will lead to better tools and support.

Let me know in the comment section which solution you use and why what features you'd like to have. And leave a like if you liked the article!


update 09-11-2021 - code with me can now also do port forwarding and screen sharing