I've been quite a chore to be around today and the root cause of my anxiety is Google's recent announcement of their Google Talk service. Everyone in my geek circle of friends seems to be all lathered up in excitement over Google's decision to enter the mess that is the Instant Messaging world. Much of it being speculation about how Google intends to do to IM and VoIP what they did with webmail in April 2004 with their launch of Google Mail.
Talk is Cheap
It's almost impossible not to paint the comparison between this week's Google Talk announcement and Google's deft grab of web mail last year, dragging it kicking and screaming from the slums of the net. Google polished up webmail and turned it into a first-class net citizen. An @gmail.com email address is premier -- enough so that it's easy to lose sight of the sad state of webmail we had previously. Remember the ugly days pre-2004? Back then sites would routinely block inbound mail from the popular webmail services. The Hotmails (pre-Microsoft), Rocketmails, and their ilk were way more trouble than they were worth. Blocking them was often the only sane way to stem the flood of abuse and crap that came from them -- nevermind trying to sign up for an account on a website using a webmail address. Although Microsoft's takeover of Hotmail may have started the trend, Google deserves the bulk of the credit for the perceptual shift we've seen since.
We've been here before
But I think that you have to go back a hell of a lot further to really grasp what might be at risk with Google Talk. You have to go back to the state of email before SMTP was the reigning protocol. There was a time when email was quite nearly as screwed up as instant messaging is today. When a person handed you a business card in 1991 the odds were pretty high that you'd have your choice from a legion of email addresses. There would be the ubiquitous CompuServe UID, a BIX id, maybe a GEnie address, FidoNet perhaps, Delphi, and Bob help you -- sometimes even a Prodigy account (the precursor to geocities if there ever was one).
People ended up having to establish presence on each of these separate networks. All the systems had their own unique quirks and limitations and the situation was a total mess. Human handshaking became a negotiation nearly as complicated as the modem protocols that hardware used.
| "Yeah, so mainly I use GEnie" "Erg, I'm not on GEnie any more. I stick mostly to BiX" "BiX? Yuck. Are you on CompuServe?" "Are you nuts? I just got a 2400 baud modem. Have you seen what they charge an hour for prime time 2400 baud access? How about Fido?" "Yeah I'm on 1:231/250." "Cool" |
...and so the dance went any time you needed to email a new person.
Eventually the major service providers began establishing complicated gateways between the systems, but I'm not convinced that these hacks and their ad hoc and confusing demands represented an improvement. At best it worked but usually it just left you wondering if your mail really made it through. It was a solid win if your mail just made it to the right person on the same day and all in one piece.
In a short amount of time, coincident with the sudden wave of TCP/IP adoption in consumer operating systems, the SMTP email protocol began to take hold as the most effective common ground. Each enclave network began to add SMTP gateways for linking to the rest of the world. In what seemed almost overnight at the time, suddenly everyone was talking SMTP natively, Just Like That. Everyone could email everyone else and life was good.
It's tempting to draw parallels between the state of email in 1991 and the state of instant messaging today. You might even go so far as to say that since email obviously worked out just fine that Instant Messaging will follow a similar path. There are, however, a few crucial differences between email and instant messaging that might very well thwart a rosy outlook.
First, however, it might help to look back on how far instant messaging has come in the past ten years or so. . .
How did we get here?
Most people point to Mirabilis and their ICQ network as the birthplace of Instant Messaging, but in reality its roots go back a lot further than that. Modern instant messaging owes a lot to the old UNIX talk daemon, IRC, and even services like CompuServe's CB chat. Before ICQ there were PC-based chat networks like Tribal Voice's PowWow. Nonetheless, ICQ was the first to garner a lot of attention and enjoy rapid growth. Initially Mirabilis seemed satisfied with merely inflicting their torturous website on the public and produced a fairly lean and utilitarian IM client (the foghorn on startup notwithstanding). This was back in the days when PointCast Network was going to make a zillion dollars by showing you ads on your computer when you weren't around and everyone else was scrambling to make the best damn Portal Website the world had ever seen. So I guess you can't blame Mirabilis -- most of the marketing departments of the world hadn't quite gotten back from lunch to discover the Internet yet.
Mirabilis' ICQ client slowly approached a 1.0 release and started growing banner ads, annoying noises, and attracting the attention of the marketing people. ICQ started making news by "capturing eyeballs" and geeks started a brisk underground trade in earlier, less invasive versions of the client like they were fine wines. Knowing a guy who had hung on to the old 0.97a installer was like currency in some circles. The Mirabilis guys didn't notice because they were too busy buying the gigantic sheets of paper they needed to extrapolate their projected growth curve out from the 850,000 users they'd gained during the first six months.
But ICQ's competition sure noticed. Soon to follow were AOL's Instant Messenger, Microsoft's MSN Messenger, and Yahoo! Instant Messenger. All provided fundamentally the same experience as ICQ but with their own cosmetic interpretations. Users either ran all the clients or undertook Machiavellian schemes to convince all their friends and colleagues to choose "their" network. The latter approach rarely worked entirely, so many people succumbed to the first plan. It wasn't pretty.
As the IM "marketplace" grew and more people embraced it, there came to be a strange phenomenon where some users adopted only one of the four major networks and were absolutely convinced that "everyone" used their network and nobody used the other ones. Grouping happened geographically or within tight social circles and for the most part people found the situation tenable until they made a new friend from one of those other, weird networks. "Oh, you're on MSN? Nutty. I thought everyone used AIM" (That same statement, of course, could just as easily been believed in the reverse).
Third-party clients became more mainstream, initially to dodge around the increasing advertising embedded in the official clients. Nobody was quite sure how IM was going to translate into profits and it seemed like every nutty idea was tested along the way. Initially the networks actively fought third-party client connectivity but eventually that arms race dwindled to nearly nothing. A logical outgrowth of the third-party IM client world was the emergence of clients which could bridge the demarcation between the various networks. Clever developers gave us multi-protocol clients like gaim and Trillian which allowed users to just run a single application and connect to all the separate networks where they had accounts. Of course this required that people create accounts on all of the various networks, but plenty of users were willing to jump through those hoops.
So that's sort of where things ended up today. A mess but a known and well-understood mess. Third party client viability is fairly solid (mostly I suppose because the network providers have given up on generating a billion dollars of banner revenue). Mirabilis bowed out of the technology altogether and sold to AIM, which was an encouraging sign of some much-needed consolidation and simplification (Just ignore AOL's half-assed integration of ICQ which still isn't really done).
The situation is far from ideal, though. It's necessary to create no fewer than three accounts on the three major networks just to be able to reliably talk to all your friends. In some circles you'd better make that four and hang on to your ICQ account too. You're also faced with having to run a third-party client instead of the "real" client or you have to burden your computer with running a pile of them and suffer through the jarringly-different user interfaces that brings.
So what to do? If you've ever been inconvenienced or frustrated by this situation, you're not alone. Even if you are placated by running a multi-protocol client there's always that nagging ugliness underneath and the fundamental suckage of what's actually going on. There's also the frustrating knowledge that while developers are spending their energies solving all the urgent compatibility problems they've got no time left over to focus on more meaningful but less urgent shortcomings in the IM world.
We've been IM'ing for nearly a decade now and I don't think it's unreasonable to expect file transfers to just work. But no, it's still mostly impossible to send files over IM. It just plain doesn't work most of the time. In ten years I'd have expected reliable file transfers and perhaps even a better UI than "Hey, here's this file from Dave!" (followed by the inevitable "Whoops, I was off getting another beer, can you send it again?"). Instead, we've left IM client developers the unglorious task of reverse-engineering closed protocols and adding untold layers of protocols and shims just to make all these insular networks look like they're not as fucked up as they really are underneath. Personally, I'd rather they were able to do more interesting development. But my goal here was not to whinge about how IM user interfaces aren't as mature as they could be after a decade of effort. Really.
So how is this any different than email?
So why won't this situation sort itself out? Well, I think there are several crucial differences between email and IM. First and foremost, email was embraced by the business world. Even before public email really started to catch on, businesses were enthusiastically using internal mail. While many of us were wasting our days on FidoNet bickering over which Dr. Who actor was the best our insurance companies were clamoring for a way to link their internal mail with those of their affiliate agencies. Companies across the planet were discovering how useful email were starting to ask why it didn't work with their vendors and customers and partners too. There was a business demand for connectivity and demand drives progress. Even more importantly, email from the very beginning has provided a reliable platform that people could use for important things.
With IM viewed more as a distraction than a tool, and not considered a serious channel for communication, I just don't think we're going to see the same push for unification that we saw with email in the early '90s. Instant Messaging is a crufty and unreliable mess so nobody takes it seriously so nobody cares that it's staying a crufty and unreliable mess. IM just isn't taken seriously enough for the lack of connectivity to truly hurt.
It doesn't have to be this way but not enough people seem to be dissatisfied enough to encourage change. And we're never going to get to that point where IM can be taken seriously until we fix the ugliness underneath it all. All these needless technical distractions and incompatibilities are a severe handicap to innovation and progress. They are the root cause for the relative stagnation in IM.
So back to the point from a few dozen paragraphs ago: IM has barely progressed at all in a decade. We're not doing things today any better, or any smoother, or any faster, or any easier than ICQ did it in 1997. All we've really done is reinvented the wheel four times, creating four isolated networks which all have that same "1997 quality" implementation.
When do we get to the "rant" part? This is boring.
So why am I frustrated by Google Talk? I'm frustrated that Google seems to consider it progress to have merely added yet another isolated network to the mess.
But wait... You thought Google was all about Teh Open! Isn't there that Jabber thing? Well, yes, sort of. The guys at the Jabber Software Foundation have got the right idea. Working with the IETF they've put together a solid set of open protocols and specification describing how instant messaging should be done. A lot of people have embraced this standard, too. Jabber support exists in most of the mainstream multi-protocol IM clients. It's in Apple's iChat. Servers are all over the world and millions of people use it. Jabber is a lot of places. Jabber is the way things really ought to work when it comes to IM.
And yes, since Google Talk uses the Jabber client protocol you can connect to Google Talk with any of the dozens of existing Jabber clients on nearly any platform you can imagine. Out the gate Google Talk supports a lot of third party clients, and client choice is a fine and noteworthy goal. It is an improvement over the other networks in that regard. It's a good thing and I'm happy that Google did it.
But Google has uncharacteristically missed the real strength of the Jabber design. Despite all their self-congratulation about open communications they've only embraced the smaller, less important aspect of the Jabber openness. What makes Jabber truly great is that it is a decentralized system. In exactly the same way as with SMTP email, Jabber allows organizations to run their own servers. It's a truly peer-to-peer system where users connect to their own chosen server and not a centralized single server. The Jabber protocol not only defines how their client software talks to the server but also how the servers pass messages between themselves.
Jabber leverages the robust DNS system just like email, so instead of a flat namespace it's a hierarchy. Unlike a closed network where there can only be one Joe and you'll probably end up having to be Joe103832 or JoeWhoLovesHoagiesForBreakfast, Jabber delegates via DNS for namespaces. My Jabber ID is nugget@macnugget.org. Yours could be you@example.com. When I send you a Jabber IM, it first goes to the @macnugget.org Jabber server which then forwards it on to the Jabber server you use, which knows how to send it to you.
This is a win on a number of levels -- it means that when I send a message from nugget@macnugget.org to another local user on my Jabber server, it never leaves my network. It's easy to see how this is of great comfort to people who value their privacy. On top of that, however, there's always the option of communicating with distant networks in exactly the same manner, with the same application I use to talk to local users. As a Jabber user I send a message to my local Jabber server for delivery, and the server just makes that happen. Since I can run my own server, I have infinitely more control over the whos, hows, whens, and whats of instant messaging.
Sadly, though, Google has chosen not to embrace this most wonderful aspect of Jabber. Instead, they've created just another isolated IM network. As a Google Talk user, a person has a jabber address (@gmail.com, mirroring their email address) but the Google Jabber servers do not talk with the other Jabber servers on the net. A Google Talk user is just as cut off from the world as an AIM user is.
After spending the past few years encouraging my friends and colleagues to embrace the open Jabber standards it's difficult to articulate how frustrating and demoralizing it is to watch them all finally get Jabber/XMPP accounts in the initial excitement of Google Talk and yet be totally incapable of sending any of them a congratulatory message. Heck, if they'd stayed with AIM it would be easier for me.
All Google has done is create yet another closed-loop system. They've made it just a little bit more of a burden for people to reliably have IM connectivity to all their friends. They've made it a little bit harder for people to communicate. They've made it a lot harder for the overall state of instant messaging to progress.
While Google is busy cheerleading their openness and freedom of choice the closest thing to an open network they seem to be considering is pre-arranged formal peering agreements with just a select few of the large Jabber service providers. There are some popular ones out there and it's probably fair to expect that people who use the public @jabber.org Jabber server may someday be able to communicate with @gmail.com Jabber users. But it doesn't sound like Google is considering embracing the true spirit of open communications by using Jabber as it was designed. It's no help for those of us who already have a connection to the public Jabber network. And it's ultimately no help for those people who have embraced Google Talk today and now have the unenviable task of trying to encourage all their friends to join them so that they can have others to talk to.
Jabber holds the promise of true instant message freedom and openness and Google appears poised to default on that promise with the way they've structured their own service.
Imagine if Google had announced gmail last year but only made it capable of exchanging mail with other gmail users. The value of email comes from being able to mail anyone. We need to move instant messaging away from these archaic closed networks and to an open protocol that can scale and allows us to move past implementation development to focus instead on areas where actual innovation can occur.
For now I'm discouraging people from switching to Google's new IM network. It simply does not offer enough benefit to justify further fragmentation of the IM world. We're probably never going to see meaningful innovation and advancement of IM utility until we find a way to get past the horrible plumbing that exists underneath, and Google Talk as it exists today is doing more harm to that goal than good. No amount of vapor or rumor regarding gee-whiz VoIP or search capabilities is going to offset the closed nature of their new network for me.
OK, you've convinced me, gimme my dollar back
The solution to universal instant messaging has to be more than just convincing the entire planet to use the same closed-loop network -- no matter who is running it. We're no better off with centralized instant messaging than we would be if one company ran everyone's email or if one company ran a single, giant web server where we all had pages. It's time to embrace a truly workable and distributed topology that will move us past these ridiculous incompatibilities. Google's vague statements about "federated" peering with other large networks doesn't change things at all. It's still closed if you have to pre-arrange contact and pre-qualify to talk with them.
Google is well-positioned to lead this charge but they appear to have chosen a different route. If you run a Jabber server, please consider sending a polite note to Google at federation@google.com. I'd like to think that if they're flooded with "peering requests" that they'll reconsider their current stance on server-to-server connectivity. I think that now is the best time to encourage Google to consider running a truly open network. Please help.
Addendum 4:51p CDT:
Both Roland Dobbins and Peter Saint-Andre have informed me that I've quite understated the widespread use of IM in the commercial world, particularly within the financial sector. If anything I think that this usage of private Jabber server only serves to underscore the underlying importance for Google to properly open up their servers for s2s communications. That the current Jabber network is even more entrenched than I'd thought only makes my main point more germane.
I've also been told that I sadly neglected to mention UUCP when discussing the state of email past.
for!that!ommission!i!am!truly!sorry.Addendum 29-Aug:
Where I've focused on the impact to users, Drunken Batman has tossed in his thoughts on what the other IM providers think of Google's release. As always, his rumor network is serving him well.
Update 31-Aug:
Google seems to have capitulated (or at least clarified their position). Gary Burd posted to the Jabber developers list clearly stating that Google now intends to support "open server-to-server federation". He also mentions that they've updated the developer page, which they have. It no longer refers only to "any service provider" and now states a goal of "open server-to-server federation." Hooray!
Original text: "We look forward to federating with any service provider who shares our belief in enabling user choice and open communications. We do believe, however, that it is important to balance openness with ensuring that we maintain a safe and reliable service that protects user privacy and blocks spam and other abuses."
New text: "We plan to support open server-to-server federation. We do believe, however, that it is important to have the safeguards in place to ensure
that we maintain a safe and reliable service that protects user privacy and blocks spam and other abuses."