4 ms·
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.
by BarkMore 16y ago
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.
- axod 16y agoAgree. 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.
- johnny22 16y agoexcept for gmail/gtalk and facebook and gmx.de and more. really though, there are more users than you expect.
- axod 16y agousers != volume of communication though Do all gmail users use gtalk? Do they use it as their primary IM? I'd expect not.
- BarkMore 16y agoXMPP 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?
- axod 16y agoIn 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.
- BarkMore 16y agoIRC 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.
- axod 16y ago> "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.
- BarkMore 16y agoEarlier 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?
- senko 16y agoApples 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).
- zppx 16y agoChrome/Chromium uses XMPP to synchronize between browsers: https://sites.google.com/a/chromium.org/dev/developers/design-documents/sync 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.
- kashif 16y agoI 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 https://github.com/directi/chirkut
- nkohari 16y agoI definitely agree, but to be fair, JSON wasn't introduced until around 2002, whereas Jabber was created around 1998.
- senko 16y agoJSON would have been a much better encoding. Based on Jeremie Miller's involvement in TeleHash (http://news.ycombinator.com/item?id=2068817 http://news.ycombinator.com/item?id=2068817) which is JSON based, I think he would agree :-)