Over the past few years I've watched myself and other developers become continuously and multiply connected. There are any number of ways that our online presences are manifested: instant messanger, blogs, wikis, SharePoint sites, VOIP, and so on. But there's another sort of connection that I keep expecting and not seeing: connection inside of our developer tools. Let me explain.

I was reminded of my thoughts in this area by running across MoonEdit on the Web. MoonEdit is a multi-platform collaborative text editor. You run a server somewhere that everyone can see it, and then they all connect with their MoonEdit clients. Connected users can simultaneously edit the same file and see each other's changes, with changes being color-coded by user. The experience ends up being something like a freeform chat. I've experimented with using it to keep meeting notes from a meeting going on simultaneously with a more standard chat client.

Combined with some other channel of communication (like IM or VOIP), MoonEdit would be perfect for pair programming over the Web. Except - it's only perfect for those who like to program in a plain vanilla text editor, even if we postulate that MoonEdit will continue to add features. What about those of us who like to write code in an IDE? That is the untapped collaborative market niche that I keep expecting to see filled.

I would love to be able to fire up and somehow share an IDE with someone else working in their own IDE on the same code. This would be useful for pair programming scenarios, training, and troubleshooting, among other things. Imagine the QA person reproing a bug and the dev dropping into code to fix it, without having to be in the same room or on the same computer. Sure, there are technical hurdles to making this work, but that's why there are big companies full of smart developers out there.

You can do some of this with tools like NetMeeting today, but I'm left wanting more integrated sharing with tighter protocols, rather than a general-purpose sharing of the entire desktop. I also think there are other tools where a sharing strategy is potentially useful: test tools come to mind, for example.

I'm left with a few alternatives to choose from: perhaps I'm underestimating the technical hurdles, and something like this is too hard to implement. Perhaps it's already been implemented, and I've missed the tools. Perhaps I'm idiosyncratic, and there really isn't a market. Any ideas?