Honeymoon is over

Friday, October 27, 2006 by darco
Posted in ,

I don't want to seem unappreciative, so I'll start out with some good points. Google Talk has energized Jabber/XMPP to a level of activity that is unprecedented. Think about all of the things that have happened since Google Talk went beta: how much of it is a direct or indirect result of Google choosing to use XMPP as the protocol for their IM service? I don't want to minimize this point. Google Talk has been one of the best things to happen to the Jabber community in recent memory. And kudos to them.

Ever since Google Talk flipped the switch to enable server-to-server communications, Google Talk has become my default recommendation for anyone looking to get a ‘jabber account’. Back then, jabber.org was still having stability problems (as it was still running jabberd 1.4), and my own server was also less than reliable. Google Talk also came with several useful features, such as the chat client built right into gmail.

However, I have recently realized that Google Talk is not the ideal, stable jabber server that I thought it would be. Read on to find out why.

UPDATE: (2006-11-01) Google Talk now supports offline message delivery!

Nitpicking

Google Talk, as a jabber service, is lacking many features that "standard issue" on most other jabber servers: real vcard-temp support and private xml storage are sorely missed in Google's implementation. This is in and of itself forgivable---both are marked as historical implementations and never officially sanctioned as a standard.

Those are annoying issues, but no big deal. If that was my sole complaint, I wouldn't be writing this blog post. The worst offenses are documented below:

No Offline Message Delivery

On pretty much every jabber server implementation to date, sending someone a message when they are offline will queue it until the next time they log in---except Google Talk. Google Talk, on the other hand, will archive the message silently. XEP-0160: Best Practices for Handling Offline Messages states how things should work:

The RECOMMENDED process flow is as follows:

  1. Sender generates XMPP message stanza [3] for delivery to a recipient such as an IM user or other node, where the 'to' address is of the form or (see RFC 3921 for rules regarding server handling of such XMPP message stanzas).

  2. Recipient's server determines that the intended recipient has no available resources that have specified non-negative presence priority. [4]

  3. Recipient's server does not return a error but instead stores the message stanza for later delivery.

  4. When the recipient next sends non-negative available presence to the server, the server delivers the message to the resource that has sent that presence. (Alternatively, the server may support Flexible Offline Message Retrieval [5], although that functionality is not described herein.)

Why Google decided to do otherwise is beyond me.

Multi-User Chat Invitations Don't Work

While the official Google Talk client does not (yet?) support Multi-User Chat (MUC), many other clients do. By using a different client, it is possible to join chat rooms and participate in discussions using a google talk account---but only if you explicitly join the chat room. I say that because it is impossible to invite someone using their Google Talk account into a chat room. Invitations are broken. This has proven to be extraordinarily frustrating, because I then have to explain to the person I want to invite how to join the chatroom from their software. These are not tech-savy people, they expect it to "just work". This is not the first time I have mentioned this problem.

The reason that MUC invitations do not work is quite simple: it has to do with Google's [mandatory] "I won't let you talk to me until I talk to you" policy. You see, MUC invitations are actually sent from the room you are inviting the person to---they are not sent directly from your client. From Google's server perspective, the invitation looks like an unsolicited message from somewhere, and blocks it. Thus, no invitation. Horrible.

Google Talk is iChat Hostile

Google Talk works horribly with Apple iChat. This opinion is not based on one single incident, but many repeated attempts to "make everything just work" for my friends and family. Whether these issues are Google's problem or Apple's, I'm not really sure. I'm sure that a healthy portion of the blame lies with Apple for not making a robust enough client, However iChat seems to work fine with most other jabber servers and Google Talk is the exception. This is what I'm talking about:

  1. When I start a chat with a Google Talk user from my account on my own server, their reply will pop up in a new window. I can only imagine that this has something to do with the <thread> element, but that's just a guess. Another side effect is that when I send messages to them in this new window, all of the XHTML is stripped out---even if they are using a client which supports XHTML-IM(like, for example, iChat). Sending messages from the original window does not strip out the XHTML.

  2. If you are logged into your Google Talk account with iChat, and then check your gmail with Camino or FireFox, bad things will happen. Your iChat Jabber roster will collapse. No, you are not disconnected, but your roster is now unavailable. You will have to either restart iChat, or log out and log back in to get your roster back. Very frustrating, but not entirely Google Talk's fault: iChat has a bug where if you receive a message from yourself (on a different resource) that it causes the roster to collapse. I'm asuming that the gmail web client is sending a <message> stanza to iChat for some reason, and iChat can't cope with the horror.

  3. The next one is more bizarre and even more frustrating. If you are using your Google Talk account with iChat, your ability to see other google talk users who are online is inconsistent and frustrating. Other Google Talk users will disappear from the roster when they come online. As in, when they are off-line, you can see them in the roster (greyed-out as offline), and when they come online: poof, gone. Now, the other Google Talk user (who is not using iChat as a client) will be able to see that the other person is online just fine. My hypothesis is that Google Talk is adding some attributes to some element that boggles iChat. This does not happen with other jabber servers.

  4. There have been many times where my girlfriend would give me a call and she'd ask me why I wasn't online. Confused, I would point out that I am in fact online. I'd then "change my status", and she would point out that it looked like I just came online. It looks like Google Talk is dropping packets somewhere, but who really knows, right? It could be my server that is dropping the presence packets. Whatever the reason, it seems to happen with my google talk contacts more often than everyone else.

No Support for Privacy Lists

Privacy Lists, the feature of jabber which allows users to hide-from and ignore other users, is not implemented in Google Talk. Instead, they implement some proprietary system for handling permissions---which is only supported by their proprietary client. Thus, if you are using a different client (like Psi), there is no easy way to hide-from or ignore people. So much for privacy being one of the strong-points of jabber.

Conclusion

Earlier this year, I swore off other proprietary IM services (like AIM, ICQ, YIM, and MSN) in an effort to encourage my friends and family to start using Jabber. Most of these people are not tech-heads, and quite simply do not care about open protocols and public federated IM networks. To them, two things matter:

  1. The Network Effect: "Are my friends using it?"

  2. The User Experience: "How easy to use is it?", "How stable is it?", "What does it let me do?", "How is this better than what I'm already using?", "Does it 'just work'?"

I am already fighting an up-hill battle with respect to the network effect, and when I'm helping some first-time jabber user set up iChat to use their Google Talk account, the last thing I need to happen is for it to start acting flakey. First impressions are scarce.

Here's the bottom line: It doesn't really matter if Google Talk is at fault or if iChat is at fault, what matters is that all of these problems will go away by simply using a different Jabber server instead of Google Talk. This is why I will no longer be recommending Google Talk to friends and family, nor anyone else who is looking for a jabber account. I just hope that when Google Talk gets out of beta things will be better.


Trackback from your own site.

14 Comments for “Honeymoon is over”

  1. Fabian Says:

    Hopefully the Problems using Google Talk via iChat disappear with the next iChat Version in OS X 10.5 Leopard. Now that Google CEO Eric Schmidt is member of Apple's Board of Directors you could expect them to work together more closely. Jingle support in iChat would be cool... Here in Germany the Jabber Server Situation recently changed dramatically: The biggest german Freemail Provider "United Internet" integrated a Jabber Server in its Accounts like Google did one year ago. But unlike Google, United Internet uses a Standard conform Server. So literally everybody i know now owns a Jabber Account. I just need to convice them to use it... Maybe you could recomment your friends signing up for a LiveJournal Account, which also features a Jabber Server.

  2. Jean-Louis Seguineau Says:

    Agreed on all cases.

    You only forgot to mention one point though. I believe many will switch away from Google as soon as third party client implement Jingle.

    The problem is that there are no Jingle prototype out there that could entice switching. And this is really a client's developper issue. The so called "compliance with standards" and argument that the Jingle XEPs are not yet complete does not hold. How many other unfinished features have ended up in clients?

    But part of a learning process is trying, and it seems VoIP still scares the hell out of XMPP clients developpers...

    Tust me, as soon as I can get a decent Jingle support in Psi, I will gladly switch! But it has been lingering for a year now.

  3. Olli Says:

    Maybe you know this site - maybe not ... on this site there is a listig of outage times of a lot of jabberservers. This overview is maybe helpful while searching a stable jabberserver. http://public.jabbernet.dk/

  4. Brian Lee Says:

    Google Talk is not alone on privacy blocking. Other clients and severs do not support the privacy lists in rfc 3921. Because xep 191 is only a few months old, I doubt that xep 191 is widely deployed.

    Would it have been better for Google to encourage developers to use Google's extension instead of rfc 3921 or xep 191?

  5. Tom Says:

    @ "the Google Talk is iChat Hostile" part

    I believe all of these problems just point to that your current iChat version is not a robust Jabber client. It makes no sense bashing on Googles Jabber server. It should never make sense that a server has to change its behaviour because one client is not understanding it.

    But I'm sure the next iChat will be more robust

  6. darco* Says:

    Tom said:

    I believe all of these problems just point to that your current iChat version is not a robust Jabber client. It makes no sense bashing on Googles Jabber server. It should never make sense that a server has to change its behaviour because one client is not understanding it.

    Like I said, my friends and family really don't care. The truth is that the only jabber server iChat doesn't seem to work well with is Google Talk, and this is only one of the reasons I am no longer recommending people use it. Apparently, several people have already expressed the same sentiment.

    But I'm sure the next iChat will be more robust

    Heres to hoping. :/

    Brain Lee said:

    Would it have been better for Google to encourage developers to use Google's extension instead of rfc 3921 or xep 191?

    I was simply expressing my frustration that google would "roll their own" solution when the Jabber council already had a solution in place. You are right though, I make it sound like they should have allowed client developers to implement their hack. I'll re-word this.

  7. Brian Lee Says:

    darco said:

    I was simply expressing my frustration that google would “roll their own” solution when the Jabber council already had a solution in place.

    What is the Jabber Council solution that Google should have used?

  8. darco* Says:

    Brain Lee said:

    What is the Jabber Council solution that Google should have used?

    Perhaps I was a bit misleading when I said "Jabber Council", as RFC 3921 has the backing of not only the JSF, but also the IETF. I see no reason why Google couldn't have implemented Section 10 ("Blocking Communications") instead of rolling their own solution---even if they intended to replace it with something better later.

    There is also XEP-0016, but that XEP has been largely superseded by the official implementation definition in RFC 3921.

  9. Brian Lee Says:

    Privacy lists were dropped from rfc3921bis. See: http://www.xmpp.org/internet-drafts/draft-saintandre-rfc3921bis-00.txt

  10. darco* Says:

    Recently, yes, it has been moved back to XEP-0016 I see. However, this is a recent development, and I still don't see why Google had to roll their own solution back when they Google Talk went public.

  11. Fabian Says:

    Seems like they read youre posting: Offline messaging works now. See also http://www.customizetalk.com/index.php?page=news&id=964

  12. Gary Says:

    Liked the article it's really interesting. I have found it a bit annoying that Google are taking their time over things like a MUC implementation (though I get that they probably want a service to run with it). They didn't, for example, use XEP-118 for User Tunes when they added that functionality. I suspect that's because people would get confused when contacts users other clients could see the updated status... but then a person on my list did get annoyed when my status messages were filling his screen.

  13. Brian Says:

    Interesting post you have here. I've got my wife using Google Talk through iChat on our PPC Mac. I sent here a voicemail (through my Windows GTalk client) just to show her how it works. Now, every time she "wakes" from "sleeping" and is logged in to iChat, we hear the lovely GTalk lady voice start to say "You have . . ." like she has a new message. But she does not. I've tried nearly everything to fix this, but I have been unsuccessful. Have you ever heard of this one? Any thoughts?

Comment on this post

* required

(or just Login »)


Type these numbers into the given field. This is how to make sure you aren't a computer.