Why Group Chat Sucks in 2007

Group chat in Adium is a mess. It’s likely the most grievous feature where it’s obviously an afterthought, and we just threw up our hands and said: “Ok, this is at least kinda functional… oh well, have fun!”

To show you what I mean, let’s start with an image of a typical conversation between two people in Adium:

Standard Chat Window

Notice, it’s pretty, but also functional. Messages from a previous conversation are grayed out on top, and the speakers are clearly identified and their lines separated. Depending on the theme, lines from the same speaker may be grouped together. Now, this does lose a lot of space to formatting and making the conversation “pretty,” but overall it’s well worth it.

Now, let’s say you want to join a group chat:

Well, ok, go to the File menu, select “Join Group Chat…” and… what’s this:

Join Chat Dialog

Ok, so I have to name my chat, and type in a nice invitation message if I want. Ok, fair enough. But I have to type my contacts in by hand? WHAT!!?!!

Adium can link your contact’s screen names (or aliases, jabber IDs, what have you) through OS X’s Address Book. I haven’t seen an AIM screen name in ages. If I want to talk to John, I look for “John” in my contact list, and I just… talk to John. Who’s JohnnyBoi1975? I can look it up, sure; but do I care? No.

Group chat should be no different. Sure, writing out a list of contacts isn’t as obvious as double-clicking a name in a list, or is it? Let’s look at Mail:

Mail.app autocomplete Awesome, it autofills the names as I type. Real names too. And it drops down a menu of options if there’s more than one match. But, I want to send an e-mail to myself; so once the address is in, we see this:

Mail.app autocompleted

The actual address doesn’t matter anymore. I’m sending this e-mail to Steve. That’s all I need to know at this point.

Ok, so now we’ve gotten past the first stage, and we’ve invited a few people into our group chat. What do they see on the other end?

Group Chat Invite Dialog

Well that’s…. ugly…

Look, if we have address book integration turned on, it should give me a real name, not a screen name. And maybe replace the Adiumy icon with the host’s contact image. If the recipient has more than one screen name active, then give the invited screen name, otherwise, just say “…has invited you,” eh?

We’ve finally made it into the group chat! So, what’s it look like?

Group Chat Window

Well, it’s not bad… it’s not exactly great either. Notice it uses the same theme as my standard chat window. That doesn’t exactly work here. In group chat, things can happen fast. Many people can write at once, the line your reading can be thrown into the backlog before you’re done reading it. At the very least, we need to be able to select a more compact theme for group chat.

Now, most instant messaging protocols have very basic group chat implementations with little to no moderation capabilities. What about IRC?

Well, IRC’s a little different from AIM’s community chats. For one, each user and channel can have a series of modes attached to it, which affect what capabilities a user has, and even if (s)he can talk at all in that particular channel. Not to mention IRC allows each channel to have a topic, that may change, each user has a nickname, that they may change at will, and so on.

It takes an interface like this to truly do IRC well:

irssi

Yes. It’s pure text, not particularly pretty, but efficient and compact. Following the 3 person discussion here is easy in contrast to trying to follow a similar conversation in an otherwise standard message window.

Is it possible to make IRC work well in Adium? Yes, I’d say it is, but it would need a unique UI. And, at that point, we’d just as well write a whole bonafide IRC client… but there’s Colloquy for that.