leah blogs

December 2004

15dec2004 · Collaborative Coding

Yesterday, on #ruby-lang, we found out that iTunes doesn’t really satisfy our needs. Especially the playlist handling misses a lot of stuff I would like. (For example, I am unable to import a .m3u playlist keeping the songs in exactly that order. And that order makes sense.) Quickly it was decided that writing a music player in Ruby was the thing to do. :-)

Ilmari Heikkinen and me started shortly after using SubEthaEdit, a collaborative editor (both for the first time, by the way). Collaborative means that both users can edit the same buffer at the same time, which will get interesting

SubEthaEdit (which unfortunately exists only for Mac OS X) was very easy to setup. The host needs to open some port range whereas the other users don’t need to change anything. After telling SubEthaEdit the URI of the editing session, all participants can start to hack on. (Control of permission is available too; for example, you can let some people only read the buffer but not edit.)

Every user gets his own background color. Quickly, the display was full of colorful Ruby code.

This way of editing is very impressive. Usually, one participant starts coding something while the others look (or correct his mistakes). Then, as soon something becomes unclear (note that the participants can’t actually talk to each other; communication works mainly via code, and this is a good thing), he changes it to something that makes more sense to him, or adds a comment.

Then, discussion starts. Even more comments get appended until a solution (usually happens rather quickly) is found. This part is probably the most fun, and the most useful one too. Simple coding is not enough as all code gets reflected by several minds at the same time.

This is usually considered the strength of pair programming (an XP virtue), but with ordinary pairing, only one person has control over the keyboard while the other “just” watches. They have the advantage of being able to talk to each other, though. (This could possibly work using some kind of VoIP software over the net, too, but probably wouldn’t have worked very good in our case, as we both weren’t native English speakers.)

All in all, it was a very exciting and fun thing to do. I can only recommend to try it on your own (if you didn’t already do it). SubEthaEdit for now only runs on Mac OS X and I don’t know of any other collaborative editors (you could try putting an Emacs frame on another box using X11…). It probably can’t be that hard to write something similar on your own…

NP: Pearl Jam & Neil Young—Song Xalto

Copyright © 2004–2022