So I was um, sitting down in the um, other room, and I brought along my iPhone to continue reading my news that I had been working through (there's a really interesting article in the IEEE Spectrum about the Athens telcom hackers), and while I was there I heard out in my office/living room my email sound. So I just bopped over to my email which is based on IMAP, and thus available from any client, and checked (another Facebook invite). Combine this with the fact that my news reader is server-side, so I don't have to read the same news twice, and my computing environment is quite seamless for the most part.
Except for two 'little' things that is: SMS and IM. I also heard my IM beep while I was in the other room as well, and that, I couldn't do much about. And if I'm at my desk and my phone is somewhere else (not common, but possible) and I get an SMS, I have to haul myself over there to read it and return the message. Does this sound familiar? The optimal solution would be what's called "Multiple Points of Presence" or MPOP (I learned that at Y!), where I'd be able to read and respond to any message I got - and see my logs for context - from any device I happen to be using at the time. If I walk away from my desk, my messages shouldn't necessarily be "routed" to my phone exactly, but I should be alerted to them, and also have access to them if needed, right?
This is a perfect world, but only if we look at a single use case. the problem is that IM isn't SMS and SMS isn't IM. Let me repeat that for any Apple Engineers in the audience: IM IS NOT SMS AND VICE VERSA. I understand the confusion, as for a while I thought they were pretty interchangeable myself. But then I started trying to use Mobile IM more and they're not the same at all. It's all about how immediate the person communicating with you assumes you'll respond.
Let me explain. SMS, despite its short length, is actually quite versatile. I can send an SMS message in the middle of the night, knowing that the person on the other end probably won't see it until morning. In this case, SMS is being used like an email message - totally asych. I send some information or an update or something, and I really don't expect a response at all. Other times, SMS is almost like an IM conversation, albeit for much shorter lengths of time (at least with my contacts - if I was a teen, that'd be different). Since there is always a lag between messages, the conversation that takes place is assumed to be somewhat asynchronous. I understand my contact may be busy doing other things, while still continuing to chat with me, so if there's a 5 minute delay, no big deal.
In IM, a 5 minute delay between messages probably means "conversation is over" and leaving random messages for someone over night that they may or may not see the next day isn't a great idea. If you see someone is on IM in the middle of the night, but idle, and you send a message, what happens? Well, half the time it turns out that they left their computer on by accident, and then went to work and logged in there, and that message was left on the old computer to be seen much later, if at all. (Many IM clients are quite happy to log you out of one computer when you log into another, essentially getting rid of the history unless you search for it in the logs... ) And if you used IM via mobile, you know how it works: Either 1) the person you're chatting to doesn't realize your mobile and is wondering why your sentences are shorter and have a huge time delay in between (relatively speaking). 2) The person on the other end ignores the fact that you're mobile and sends 20 messages in a row, which you can barely keep up with or 3) The person you're chatting to sees the IM status that says, "I'm Mobile" and doesn't bother to message you at all, because they know you're not at your desk, and thus are obviously completely disconnected from the world in general (which, if they wanted to share a cool new YouTube video, most likely is a good thought to have for most phones).
Okay, so I say all this to explain how, in my opinion, MPOP needs to work. It's not about routing IM to your phone, or making SMS look and work like IM (Apple, you listening) - though I'm sure the carriers would love for users to send SMS messages the way they send routine IM messages - but about integrating the two in an intelligent manner. What you really want is that if you walk away from your desk, and you get a message - or someone starts a new "conversation" or "IM session" - you want to be alerted on your phone and given the option to pick up the conversation where you are. In order for that to happen, of course, I need to be able to see the log of messages that were sent previously, and to "join in" to the IM seamlessly. And when I get back to my desk, I want to be able to pick up where I left off, chatting away, without having to do anything more than putting my phone down. It seems pretty far fetched, but in reality, it's mostly about presence notification and server-side logging, right? An IM client that users Jabber could theoretically accomplish something like this easily, as it's a much more server-centric protocol which already supports multiple clients out of the box. But honestly, I don't think this is really a technical problem, but more of a misunderstanding of what's needed - a focus on the conversation, not just the individual messages.
So anyways, that's my dream - one that I've had for quite a few years now. In reality, it goes back to a core belief I have that many things in mobility can be solved with alerts over explicit routing. In other words, I don't need my phone to download my new mail, I just need to know it's available for me to pull it if I want. I don't need to have a picture sent to my phone, I just need to know it's waiting for me. And this is the same with IM conversations as well. I've played with Gaim/Pidgin a few times to try to implement this system myself, but not being a Perl or Python hacker, it's been slow going, but I'm still messing with it. Especially now that sites like beejive.com are available on my iPhone, and I use Jabber for most of my contacts, I should be able to do exactly this - get a message while idle, send off an SMS message with a web link, and bam, I've picked up the conversation where it left off... Easy peasy, lemon squeezy.
Now I just need to get it done. :-)