Slashdot Mirror


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?"

31 of 302 comments (clear)

  1. Use subversion either hosted or your own server by ls671 · · 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

    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.
    1. Re:Use subversion either hosted or your own server by the+eric+conspiracy · · Score: 2, Informative

      Mercurial would be better for this because both students would have their own repository and no central server would be required.

    2. Re:Use subversion either hosted or your own server by SanityInAnarchy · · Score: 3, 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.

      --
      Don't thank God, thank a doctor!
    3. Re:Use subversion either hosted or your own server by HaZardman27 · · Score: 3, Informative

      If these students are embarking upon a journey into computer science, I would say that they should get used to scraggly beards.

      --
      Apparently wizard is not a legitimate career path, so I chose programmer instead.
    4. Re:Use subversion either hosted or your own server by SanityInAnarchy · · Score: 3, 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.

      --
      Don't thank God, thank a doctor!
    5. Re:Use subversion either hosted or your own server by Anonymous Coward · · 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.

    6. Re:Use subversion either hosted or your own server by skeeto · · Score: 2, Informative

      Emacs can actually do this by itself with X, with each user getting their own cursor so they can type at the same time too. The command is make-frame-on-display, which simply asks for what display to use in addition to the current one. This will even work with Emacs running on one machine, and being displayed on two other machines which have X forwarded via ssh.

  2. How about gobby? by StylusEater · · Score: 5, Informative

    How about gobby... http://gobby.0x539.de/trac/ ?

  3. SubEThaEdit or some other choices... by liquidhippo · · Score: 5, Informative

    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

  4. SubEtha? by galego · · Score: 2, Informative

    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]

  5. Bespin or Cola by illumina · · 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.

  6. Microsoft Live Mesh isn't bad by farina · · Score: 2, Informative

    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.

  7. Eclipse DocShare (Cola) by slim · · Score: 3, 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

    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.

    1. Re:Eclipse DocShare (Cola) by greg1104 · · Score: 2, 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.

  8. Eclipse + ECF + XMPP (Jabber) by jazzkat · · Score: 3, Informative

    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.

  9. Re:Etherpad by jd · · Score: 3, 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.

    --
    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)
  10. Re:Please by Anonymous Coward · · Score: 2, Informative
  11. Re:Gnu screen by Unoti · · Score: 2, Informative

    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.

  12. 'pair programming' overrated... by Junta · · Score: 2, 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.

    --
    XML is like violence. If it doesn't solve the problem, use more.
  13. Well nobody else said it... by Bill_the_Engineer · · Score: 2, Informative

    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...
  14. Re:Just cancel pair programming by Anonymous Coward · · 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.

  15. SubethaEdit by Anonymous Coward · · 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.

  16. SubEthaEdit allows collaboration... by ghostis · · Score: 2, Informative

    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?
  17. Re:Gnu screen by charlesnw · · Score: 2, Informative

    I think that screen is very easy to use.

    ssh
    screen -S "blah"
    ctrl + a :multiuser on :acladd user (repeat for every user you want to have access)

    Took just a couple minutes of googling to find a howto the first time I did it.

    --
    Charles Wyble System Engineer
  18. lmgtfy by schmichael · · Score: 2, Informative

    Multi-user screen: http://aperiodic.net/screen/multiuser Gobby (multi-user text editor): http://gobby.0x539.de/trac/

  19. Re:Just Plain Stupid by Chabo · · Score: 2, 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...

    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
  20. Re:Just cancel pair programming by smash · · Score: 2, Informative
    Just thought i'd respond to this.

    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.
  21. Collabed? by msimm · · Score: 2, Informative

    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.
  22. Bespin? by mpath · · Score: 3, 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/

    --
    I'm not sure what the secret to success is, but the secret to failure lies in trying to please everyone -Bill Cosby
  23. Re:Please by Anonymous Coward · · 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 ..

  24. screen(1) by Turmio · · Score: 2, Informative
    Setup a publically accessible Linux box at your school. Load the development server with a selection of text editors to experiment, Sun Java JDK and screen (if using Ubuntu, everything is installable by running just one apt-get(1) command). Give each pair a shared account on the machine. Have them connect to the development server using what ever SSH client they please (Terminal.app + command line ssh on Macs, what ever GUI terminal emulator on Linux clients + command line ssh or Putty for Windows clients). First one to log in starts a screen(1) session. Second one will attach to the session by running screen -x. Now they both share the console session in real time. Both can type input and the other one will see the updates immediately. Have them write code using any Unix text editor such as vim or emacs (or pico or jed or what ever for wussies).

    Summa summarum.
    • It can't get more text based than this.
    • Connection will be perfectly usable over a low-bandwidth link (though you should have reasonable latency, say 100ms or less, for jerk-free operation).
    • Minimal requirements at student's end
    • Having to work on text-based command line may sound a bit kinky at first if the student's are not familiar with it, but hey, you need not to be a long-bearded Unix weirdo in order to set up and use this kind of system. It's really simple when you think about it and let your prejudice go and spend 15 minutes learning the basics first.
    • Definitely free as in beer and freedom!