Visual Studio Live Share Preview
github.com
github.com
When you pair program with someone, or assist someone, for it to have any point at all isn't the idea that you always edit in ONE place, and that only one person edits at a time? How will personA know what personB is doing otherwise, if personB's cursor can be anywhere?
Next, when personA and personB agree they have gotten somewhere and they launch their calculator app, web browser or whatever, how will both see what is going on? Is there support for also sharing a window/desktop? I mean, sharing my debugger state is cool, but what about the actual program window we are debugging? How can Jeff help me by introspecting variables in my program, if he can't see the program window?
The simpler problem of "sharing a screen while coding" seems to me to be a solved problem: you share your screen and input, like any remote desktop solution has done for ages. I get that this is significantly lower bandwidth and more tailored to coding, but in return it seems to not solve many of the fundamental problems of collaborative development.
I can see this tech being much more usable to e.g. develop cloud based IDE's, or remote debugging on servers, than "collaborative development"! Am I overly pessimistic or missing the point?
In many cases, yes, all collaborating participants would likely be working together in the same file. However, when speaking with folks as part of developing Live Share, we found that there were equally as many cases where developers wanted the ability to take certain actions independently (e.g. look up the definition of a function that’s in another file), without needing to disrupt the other parties, and without losing the ability to re-synchronize their focus once they were done.
With that in mind, our goal for Live Share is to support “opportunistic collaboration” between developers, that supports a broad spectrum of needs/workflows/personal preferences/etc. in a way that potentially feels more natural for folks as they are helping/teaching each other (e.g. sometimes I want to tell you what I’m thinking, and sometimes I want to show you).
Regarding your comment about being able to view the running app while debugging, we actually support the ability to “share local servers”, which allows this exact scenario for web apps/APIs/etc.
https://github.com/MicrosoftDocs/live-share/blob/master/docs...
It’s still early days for us, but it’s our goal that all meaningful editor/application context can be shared between participants, in order to effectively collaborate together (e.g. build output, terminal sessions).
I am also glad you're pursuing difficult goals like opportunistic collaboration. By the way, have you looked into data usage (sorry for wrong word) I mean is live share usable over a stable 200KBps connection? An unstable 1MBps LTE connection?
Currently, it’s already very usable in these conditions, especially when compared to screen sharing :)
Only thing is it's so slow. Just typing and navigating is pretty noticeably choppy. also it still has some memory leaks (although it used to be a lot worse)
> Windows 10
Sounds painful.
With Windows 10 it's not, it's painful when running OSX, the animations make it laggy and stutter, while Windows 10 gives me about ~3 hours more battery life (cos there's no gfx switching like in the Macbook Pro)
Not sure what you mean by "gfx switching", as far as I know all 12" Macbook have only a integrated graphics card, no discrete graphics card.
With the Macbook Pro I get less battery life with Windows 10 because Apple forces Windows to only have access to the discrete graphics card. OSX can switch between the two so it's more efficient.
With the Macbook 12" I get more battery life, it seems Windows 10 is more power efficient than OSX. (I got the same as OSX when running Windows 7)
i know you guys are just interfacing with the vscode api so there's some things you simply can't do, like skipping over folded code when navigating with j/k.
It shouldn't be used to control what another guy is doing.
That said, we’ve heard a lot of interest in other use cases as well (e.g. pair programming), and are keen to understand how Live Share might be able to complement them.
That said, I don't think anybody is proposing this as the default working mode for writing software. It's a tool for specific kinds of situation.
[1] e.g. http://collabedit.com/
I don't know why the GitHub doc get linked, but this page probably gives more context: https://code.visualstudio.com/visual-studio-live-share
Disclaimer: I work at VS Code and have tried Live Share in private preview. Honest feeling is it still has some gaps, but if everything would work out of the box it can be pretty awesome.
With VS Code and Xi’s asynchronous-first architecture, maybe collaborative editing will become a standard for new editors in the future.
If you’re interested in checking out the preview and letting us know how well we’re meeting that goal, I’d love to get your thoughts :)
Whether you want to edit in a VM, or your company uses devservers, or you want to modify files on a remote server, the previous options were limited to terminal based editors.
VS Live Share should have the technology to enable that for VSCode/VS.
Check out this issue.
Looking forward to trying the VS Live Share, as I primarily work with VSCode anyway.