Collaborative Software For Pair Programming? 302
DavidMatuszek writes "I will be teaching Java again this Fall. Students work in pairs, but unfortunately (after the first hour) typically not physically together. I would like to find collaborative software that is (1) dead simple to use, because that's not what the course is about, and (2) free. Google Docs would do, but students will be sharing code — plain text — not RTF or HTML or Word files. Is there such software for plain text?"
Use subversion either hosted or your own server (Score:5, Informative)
I would recommend to use Subversion. You could setup your own server but there is also hosted solutions available. I searched Google for "hosted source control" and I found this link :
http://weblogs.asp.net/fmarguerie/archive/2005/04/27/Hosted-source-control.aspx [asp.net]
The bonus would be to teach your student how to use version control and how to work together on the same files. Subversion (and older CVS) integrate into Eclipse and most other development environment. There is also standalone clients available if your students use a simpler editor like vi or notepad ;-))
Obvious answer is obvious (Score:-1, Informative)
http://code.google.com/ [google.com]
'nuff said.
How about gobby? (Score:5, Informative)
SubEThaEdit or some other choices... (Score:5, Informative)
Re:Use subversion either hosted or your own server (Score:3, Informative)
Mercurial would be better for this because both students would have their own repository and no central server would be required.
SubEtha? (Score:3, Informative)
Re:Use subversion either hosted or your own server (Score:4, Informative)
Seconded.
Well, actually, Git would probably be better, but that's a matter of opinion. But even with a central server, Git is faster and simpler than SVN for most things.
Bespin or Cola (Score:2, Informative)
https://bespin.mozilla.com/ - is a pretty slick in-browser code editor, that, if I'm not mistaken allows shared editing like Google Docs.
There is also an Eclipse plugin called Cola that allows simultaneous editing, but I'm not sure how stable it is, I've only seen a video demo.
And whichever method you choose, source control should be mandatory, ideally distributed (git or mercurial), though SVN is better than nothing.
Microsoft Live Mesh isn't bad (Score:2, Informative)
Re:Use subversion either hosted or your own server (Score:3, Informative)
Eclipse DocShare (Cola) (Score:4, Informative)
I initially read the question as being about real time remote collaboration.
If that's the case, there's Eclipse's DocShare plugin: http://wiki.eclipse.org/DocShare_Plugin [eclipse.org]
I haven't tried it, and I don't know how mature it is. But I watched a video presentation on it a while ago and it looked very promising.
Eclipse + ECF + XMPP (Jabber) (Score:3, Informative)
http://www.infoq.com/news/2008/06/eclipse-ganymede-ecf [infoq.com]
Set up a Jabber server and away you go.
I have not tried this, so I can't speak to its quality.
Re:Etherpad (Score:4, Informative)
Uck! Marketroid speak! It's not exactly new, there was a multicast-based text editor as part of the MICE suite, and there were some very nice "whiteboard" programs out there which allowed you to use OLE linking to share data between two applications real-time.
The first certainly was around in the early 1990s, the second was around in the mid 90s.
EtherPad may be "new" in that it uses HTTP as the underlying protocol, but collaborative editors are ANCIENT. The biggest problem they've faced is that so few people have used them that they have never really maintained critical mass.
Re:Please (Score:2, Informative)
Re:Gnu screen (Score:3, Informative)
'pair programming' overrated... (Score:3, Informative)
At least it is overrated outside of an educational lab.
At least when I was in college, pair programming required two people looking at the screen and no more than one typing at a given time. You could use GNU screen, vnc, whatever for this, but realistically speaking, it is inefficient and by and large isn't feasible in the real business world after the days of .com ended.
At the other end of the spectrum, if you operate in a vacuum, there are definite high penalties of problems being caught later than they should and requiring more rework then they should to acheive the goal.
I personally go with a revision control system which emails me the patches the other person does, encourage frequent checkins, and review every change. I don't have to sit through them typing and reworking their snippets of code as they catch their own mistakes in their own logic flow, and yet I review the changes shortly after they make them and can offer feedback within the hour. It takes me much less time to review the diff than it does for them to create and 99% of the benefit is still acheived. It's a very happy medium. Most any sane revision control system will let you set up checkin hooks to email changes to appropriate distribution lists.
Well nobody else said it... (Score:3, Informative)
You're teaching Java and need pair programming...
Sounds like you need netbeans... http://collab.netbeans.org/ [netbeans.org]http://collab.netbeans.org
I think it sounds tedious, but you did ask...
Re:Just cancel pair programming (Score:1, Informative)
In education you get out of it what you put into it. If one of the pair wants to slack and learn nothing that's his problem.
Your spending the money to get the education. Do the Work. If you find that your partner is doing all the work speak up, be an adult, and take charge.
Re:Eclipse DocShare (Cola) (Score:3, Informative)
There are a couple of presentations, perhaps including the one you allude to, as well as other answers to this question all right where you'd expect them to be: pair programming [wikipedia.org].
SubethaEdit (Score:1, Informative)
There is a great Mac app called SubethaEdit, I highly recommend it, and is a great collaborative text exit app, allowing many ppl to contribute simultaneously.
Re:Use subversion either hosted or your own server (Score:4, Informative)
Well, svn is also quite complex. Compare a git merge with an svn merge.
I suppose I should say, easier to use, once you know how. The learning curve might be sharper. On the other hand, it's much easier to set up a Git server than an SVN server -- ssh access is all you need.
SubEthaEdit allows collaboration... (Score:3, Informative)
SubEthaEdit does collaborative coding on Mac, if I recall correctly.
http://www.codingmonkeys.de/subethaedit/ [codingmonkeys.de]
Re:Gnu screen (Score:3, Informative)
I think that screen is very easy to use.
ssh :multiuser on :acladd user (repeat for every user you want to have access)
screen -S "blah"
ctrl + a
Took just a couple minutes of googling to find a howto the first time I did it.
lmgtfy (Score:2, Informative)
Re:Just Plain Stupid (Score:3, Informative)
Actually, there are tons of good examples where pairs resulted in fantastic creative endeavors. Go see a Rogers and Hammerstein musical, or a Gilbert and Sullivan operetta. Or watch "The Matrix" or "The Big Lebowski" while sitting in an Eames lounge chair.
Except that pairs almost always divvy the work between them in a very delineated way:
With Rodgers composing the music and Hammerstein adding the lyrics... [wikipedia.org]
Gilbert, who wrote the words... Sullivan composed the music... [wikipedia.org]
Partnerships between two people with very similar opinions and skillsets (the Coen brothers, for instance) are extremely rare.
Re:Just cancel pair programming (Score:3, Informative)
Back in the day, when I was about 15 and starting out trying to write demos (as in demoscene - we managed to replicate a few effects we'd seen back in the 90s from other big groups - after going "Wtf, how does that work?"), a friend and I started coding together.
The actual CODING is a one man job, sure; but when you're trying to solve a problem, having 2 minds work on the ALGORITHM gets you better results, quicker IMHO.
Sure, you'll possibly end up with the same algorithm/code eventually anyway, but having a second set of eyes and brain analyzing the process you're going to use picks up potential problems earlier. While you're thinking you're clever with some part of the problem, the other person is finding the glaringly obvious bug that you haven't seen (yet).
2c.
Collabed? (Score:3, Informative)
Bespin? (Score:4, Informative)
There was some talk a while ago about this. I gave it a shot back then and it was a CPU-hog. With the latest strides in JavaScript (both browsers & the technology), it might be worth another look:
https://bespin.mozilla.com/ [mozilla.com]
Re:Use subversion either hosted or your own server (Score:1, Informative)
I agree that git is great, but I must point out that subversion works perfectly fine with plain ssh access. That's what we use at work, and we never needed any other server solution.
Re:Please (Score:1, Informative)
Yes it does ..
Do you even know what you're talking about ?
http://en.wikipedia.org/wiki/Pair_programming
Its kinda like two people trying to drive a car at the same time
screen(1) (Score:3, Informative)
Summa summarum.
Re:Use subversion either hosted or your own server (Score:3, Informative)