Hacker News new | past | comments | ask | show | jobs | submit login
XMPP Turns 12 (switched.com)
20 points by taylorbuley on Jan 5, 2011 | hide | past | favorite | 16 comments



After all these years, XMPP is still a PITA to implement.

Starting at the lowest level, XMPP streams are framed by the 2nd level elements in an XML document. Clients and server must keep an XML parser open for the lifetime of the connection. If you don't have a parser like expat available, then you either need to dedicate a thread to the connection or use ugly regex style hacks to handle the framing. Almost any other framing mechanism in use today would have been easier to use (null bytes between messages, length prefixed messages, and so on).

Moving up a level, the use of XML namespaces is over designed. XMPP uses unique namespaces for each type of connection (client to server, server to server, component to server). This provides no benefit to any party and is ugly for server developers where they need to deal with all types of connections.

I could go on. I have not even gotten to the application layer (RFC 3921).

Other protocols have warts, but not like those that I have encountered in XMPP.


I couldn't agree more. Too much namespacing. Also JSON would have been a much better encoding.

Recently wrote a bosh server in twisted/python and I find that even something that simple has scope for improvement. The specs for XMPP and BOSH are really badly written.

My bosh server - https://github.com/directi/chirkut


JSON would have been a much better encoding.

Based on Jeremie Miller's involvement in TeleHash (http://news.ycombinator.com/item?id=2068817) which is JSON based, I think he would agree :-)


I definitely agree, but to be fair, JSON wasn't introduced until around 2002, whereas Jabber was created around 1998.


Agree. To pretend that XMPP is some sort of success is crazy. After 12 years, it's hardly used compared to other protocols.

The protocol is amongst the worst imaginable. Over engineered crap.


XMPP does have a lot of use (Google Talk, Facebook chat, Chrome browser sync, ...) and is the most successful non-proprietary instant messaging protocol.

I wonder what the state of the world would be like today if XMPP had been more approachable for developers. Would we still have instant messaging silos like MSN Messenger and AIM?


In what way is IRC for example proprietary?

Yes, to a certain extent GTalk and facebook chat have taken a little market share from other IM clients (Not sure how much, maybe 10%?).

But XMPP is nowhere when it comes to group chat.


Apples and oranges. IRC is in general used for group-chat with topic channels, while other IM protocols (such as XMPP, ICQ, Skype, MSN, AIM, ...) are primarily 1:1 chats with friend/buddy lists.

That said, XMPP MUC (multi-user chat) is terrible, overengineered and less usable than IRC is.

(Disclaimer: I hacked on bits and pieces of XMPP client in Telepathy).


IRC is not proprietary and I did not say that it is. I think it's great that you are using IRC in your project.

Overall, there are many more active users of XMPP than there are users of IRC. When I say active users, I mean users who send and receive messages. I am not including users who only have the chat widget open on Gmail.


> "Overall, there are many more users of XMPP than there are users of IRC."

I'm skeptical. Post some figures if you have them, especially on volume of chat. Idle users mean nothing.


Earlier in this thread you estimate that GTalk and Facebook have 10% of the instant messaging market. Does IRC have more users than 10% of the instant messaging market?


Chrome/Chromium uses XMPP to synchronize between browsers:

https://sites.google.com/a/chromium.org/dev/developers/desig...

  [ricardo@Brynhildr ~]% /sbin/ss -p | grep chromium
  ESTAB      0      0           192.168.66.67:50225        74.125.45.125:xmpp-client  users:(("chromium-browse",2766,155))
  CLOSE-WAIT 1      0           192.168.66.67:48406      174.143.235.145:www      users:(("chromium-browse",2766,162))
  ESTAB      0      0           192.168.66.67:34108        74.125.229.55:https    users:(("chromium-browse",2766,148))

  [ricardo@Brynhildr ~]%  host 74.125.45.12
  125.45.125.74.in-addr.arpa domain name pointer yx-in-f125.1e100.net.


except for gmail/gtalk and facebook and gmx.de and more.

really though, there are more users than you expect.


users != volume of communication though

Do all gmail users use gtalk? Do they use it as their primary IM? I'd expect not.


Back in '99, I was working in the Instant-Messaging and Chat-On-Page sector. Let me tell you what I observed back then:

The IETF group working on IM was comprised of people from Netscape, Microsoft, AOL and a few others. At that point, AOL owned the IM world through AOL Messenger and (then recently acquired) ICQ. Microsoft was starting to make a dent with MSN Messenger after they started bundling it with the O/S and everything.

I was following the IETF discussions and mailing lists, and after a couple of months realised that the people on these lists had no reason to make things happen -- on the contrary. Everyone wanted AOL to open up the ICQ/AOL networks; they wouldn't. Everyone was already working on their own IM protocol, and didn't want to share it with the others -- they just wanted the OTHERS to share THEIRS. The discussions were long and pointless, revolving around semantics and irrelevant scenarios.

XMPP/Jabber developer was among the participants. The suggestions were full of flaws, complex and inefficient to implement, and no one liked them. But he was the only guy releasing code. And after a couple of years (sometime in 2001 IIRC -- I was no longer closely following it) it actually became usable.

It is still inefficient; it is still too complex for what it does; But for the last 9 years or so, it was the only option for a documented protocol with an open source implementation that you could find cross-platform clients for and install inside your own network.

And that's a win.


Jabber, the universal chat protocol latterly known as XMPP^w^w^w^w^w^w^w^wThe federated message passing network known as XMPP.

The virtues of a realtime decentralized but federated message passing network... reduced to "chat".

Yeah, the chat network turns 12. Congratulations XMPP folk.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: