Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

"Google Docs" allows for real-time, collaborative document editing. Multiple document viewers are able to simultaneously read and change a document's content so that one user's updates are instantly applied and visible to all other viewers.

  • Are there any software/web-app IDEs that facilitate this type of collaboration for writing code?

  • Which processes (ie pair programming) stand to benefit from a system like this and which don't?

  • Does this model for collaborative editing present a viable alternative to the current source control systems generally used by teams of software developers working on a single code base?

Related but less general

share|improve this question
    
I don't believe any processes will benefit from them, and may be harmed. Pair programming works well in person, but across the internet, looking at the display and talking on the phone would have too much of a cognitive disconnect. –  whatsisname Nov 17 '10 at 22:18
    
and gdoc updates are hardly 'instant' –  Steven A. Lowe Nov 17 '10 at 22:20
2  
@Steven A. Lowe, When was the last time you used Gdocs? At least 4 or 5 months ago they improved the networking on it. Typing is in real time and seems to have less than .5 seconds in latency. Is that not instant enough for you? –  AttackingHobo Nov 17 '10 at 22:33
    
@AttackingHobo: two weeks ago. I was on the phone with the collaborator and could hear him typing; his changes didn't appear for 10-30 seconds –  Steven A. Lowe Nov 18 '10 at 1:18
    
How about IRC, the ultimate multiplayer notepad? ;) –  zxcdw Apr 17 '12 at 13:41

1 Answer 1

up vote 3 down vote accepted

Collaborative code writing tools

Visual Studio.Net has a plugin called wave-vs.net that allow real-time collaborative editing to support pair programming features.

Eclipse has two plugins called DocShare and Saros, that allow real-time collaborative editing of documents (DocShare) or projects (Saros).

(the above quoted from wikipedia)

Which processes benefit?

Obviously pair programming. Off the top of my head I can't think of any immediate show-stoppers when considering the improvement the GDocs experience brings, and extending that improvement to collaborative coding.

I think the collaborative approach would work best if multiple people are working on sections of code that can be considered 'close'. It can also improve round-trip time for changes, as you don't have to wait for a commit-update cycle to have the latest version.

Are they an alternative to VCS?

They are complementary. They both serve the same purpose of streamlining contributions from team members. But there is a fundamental difference in their approach: Current VCS'es mostly document snapshots of a project, while collaborative editing documents fine-grained changes, capturing the thought process of a developer.

Furthermore, commits in a VCS are neatly organised as a change set. In a collaborative environment, on the other hand, you can't even ensure the code will compile at any moment before completion of the whole project, because someone else might always be in the middle of writing a line of code. Change is continuous. Therefore it might not be possible to unravel the contributions into change sets.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.