Collaborative Software For Pair Programming?
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?"
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
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 ;-))
Everything I write is lies, read between the lines.
How about gobby... http://gobby.0x539.de/trac/ ?
If you are working on Mac OS X, then SubEThaEdit is a great choice for collaborative coding. As for other options, check this wikipedia page: http://en.wikipedia.org/wiki/Collaborative_real-time_editor
SubEthaEdit (Hydra once upon a time) allows live collaborative editing. not sure of the security or other implications/issues. I tried it once or twice. Was a decent editor otherwise ... no real big frills.
Que Deus te de em dobro o que me desejas
[May God give you double that which you wish for me]
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.
If you want a folder based sharing solution for Mac or Windows...Microsoft's Live Mesh works fairly nice. I use it for my small company and share all sorts of files with my co-worker.
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
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 offers realtime collaborative editing via XMPP and the Eclipse Communication Framework:
http://www.infoq.com/news/2008/06/eclipse-ganymede-ecf
Set up a Jabber server and away you go.
I have not tried this, so I can't speak to its quality.
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.
It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
Really?
Teach them screen, yes. We use it constantly where I work, which is an environment where we have distributed developers working together all around the world. Screen is not dirt simple, but it's a real life practical skill that's worthwhile to teach the students. I'd rather take the extra time to get everyone comfortable with screen and have them do real collaboration than to mess around with pretend solutions like Google docs or etherpad. We use Etherpad and Google docs, too, but for pair programming and troubleshooting, Screen is hard to beat.
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.
XML is like violence. If it doesn't solve the problem, use more.
You're teaching Java and need pair programming...
Sounds like you need netbeans... http://collab.netbeans.org/http://collab.netbeans.org
I think it sounds tedious, but you did ask...
These comments are my own and do not necessarily reflect the views or opinions of my employer or colleagues...
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.
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.
SubEthaEdit does collaborative coding on Mac, if I recall correctly.
http://www.codingmonkeys.de/subethaedit/
Computer Science is all about trying to find the right wrench to bang in the right screw. -T.Cumbo?
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.
Charles Wyble System Engineer
Multi-user screen: http://aperiodic.net/screen/multiuser Gobby (multi-user text editor): http://gobby.0x539.de/trac/
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...
Gilbert, who wrote the words... Sullivan composed the music...
Partnerships between two people with very similar opinions and skillsets (the Coen brothers, for instance) are extremely rare.
Convert FLACs to a portable format with FlacSquisher
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.
I run: Windows, OS X, Linux, FreeBSD. Just because you have a hammer, doesn't mean everything is a nail.
I haven't used it but Collabed looks interesting. Of course most kids would probably end up doing it with im and the occasional email, but it still looks interesting.
Quack, quack.
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/
I'm not sure what the secret to success is, but the secret to failure lies in trying to please everyone -Bill Cosby
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
Summa summarum.