I love iChat. It’s a perfect example of a great tool (when used with care[1]). However, Ölbaum and I very often suffer from thread overload: Because of the nature of IM conversations, one party very often ends up answering a first question when the other already issued a second one:

Ölbaum: Have you seen the new yet?

jr typing …

Ölbaum: What about lunch?
jr: No
jr: I mean, Yes for lunch, No for Bö

This happens all the time and it’s very confusing, let alone makes conversations much less efficient than they could be — adding to the distraction appeal of IM.

The solution to this dilemma is simple, though: Threaded discussions. Like e-Mail or newsgroups know threads forever, IM applications should support this as well.

I mean, there is even an RDF vocabulary from Dave Menendez that defines a Thread Description Language. So why not implement an iChat plugin that adds this functionality to iChat by either adding some color coding à la Mail.app or some other, intelligent means of marking a thread? If it’s well done, it could even be added to other IM apps[2]!

I am not a very seasoned Cocoa programmer but at last I managed to add Messenger Plus-like functionality to a copy of the excellent iCAR plugin by Adrian Sampson. So it should be no problem to add some kind of threading to it as well. Of course you can’t name it iChat Auto Reply anymore, but that should be manageable, no?

So if some volunteer is willing to fork a iTDM (iChat Threaded Discussion Module) from iCAR, I’d happily debug and alpha, beta, gamma test that thing. :)


[1] That is, when you don’t spend too much time chatting around and loosing time.

[2] I’m just wondering if maybe, the Jabber protocol already accounts for threads in IM? If that proves to be the case then the article on Apple Insider would be even more significant as the Jabber protocol is psuhed by the IETF as “Extensible Messaging and Presence Protocol (XMPP)“. I’ll have to check that!

It does. Says the RFC3921 XMPP: Instant Messaging and Presence on the <thread/> element:

2.1.2.3. Thread

The <thread/> element contains non-human-readable XML character data specifying an identifier that is used for tracking a conversation thread (sometimes referred to as an “instant messaging session”) between two entities. [...]