Hydra
I finally got around to trying Hydra yesterday, and I must say I’m more impressed than I expected to be. I find Extreme Programming, with its emphasis on pair coding, very intriguing, but the idea of sharing my computer with someone else has never appealed to me. First, it makes me nervous to have someone literally looking over my shoulder all the time; second, it always seems to me that the constant back-and-forth over who gets to “drive” inhibits my productivity. If I have a sudden burst of inspiration, I don’t want to have to say “quick, stop what you’re doing and give me the keyboard!”—I just want to get it down as quickly as possible. Maybe I’m just a control freak, but trying to work on anything—be it a Word document, web page, or piece of code—without full control of my machine is frustrating.
This is where Hydra is advantagous—it is a text editor that allows two or more people using different machines to work on the same document at the same time. As you type, the others see your changes and vice-versa. Automatic, peer-to-peer client discovery is handled by Apple’s Rendezvous technology. The idea is so simple that you tend to wonder why no one did it before, and yet so ingenious that it has the potential to fundamentally change the way a lot of people collaborate. And, as is the case with a good deal of Mac free/share/indieware, the beauty of the software doesn’t end with the concept: the actual implementation is top notch.
As it happens, my first practical use of Hydra actually had nothing to do with software quality or pair programming, but I think it reveals another important use for the app that I haven’t seen anyone mention yet: education. My younger brother expressed interest in putting up a web page and wanted me to help him render his proposed design into HTML and CSS. Rather than having him simply watch while I layed out the entire page for him on my computer, I had him fire up Hydra and follow along as I coded. Once I had the basics in place, and he had a better sense of how HTML works, I was able to turn control over to him and watch as he worked, pointing out mistakes or offering advice. My opinion is that this was a much more educational and interactive experience for him than it would have been if we had done the whole thing on my machine. I can already see huge applications for apps like Hydra in computer science education!
Of course, as slick as Hydra is, I think it goes without saying that its true legacy will less as a text editor in its own right and more as an influence on established applications. Like most programmers, it would take a lot more than a single feature to separate me from my favorite tools: BBEdit for Perl, Shell Scripting, and web development; Eclipse for Java development; and Project Builder/Interface Builder for Cocoa development. I for one would be surprised if we didn’t see some sort of Rendezvous integration in the next major release of BBEdit.