Hacker News new | ask | show | jobs
by lucian1900 4910 days ago
It's such a terrible protocol and a pain in the ass all the time.

Sadly, there is no other wide-spread protocol with good multi-user chat clients. XMPP might be the best replacement, but there are almost no dedicated multi-user chat clients and irc networks (like freenode) would have to join the two protocols during the transition.

4 comments

He, for me it's the other way: I like IRC because it's very simplistic. But when I have to do something with XMPP on the protocol level I just want to stab my eyes out because it's a bloated pile of XML.

Maybe it depends on tooling. If you have a language that is married with XML - like Java - you probably will have no problems with XMPP. But if you're doing stuff with C you will love the simple structure of IRC.

IRC is extremely idiosyncratic, though. XMPP is much more logical and consistent. Any decent language can deal with trees, although XML is sometimes a little annoying.

The potential problem with XML is the overhead. I'm not sure that's been an issue so far, though.

I've heard it argued that the main reason Wave died was all the XML overhead from being built on XMPP.
I doubt that's it. More likely Wave died because they somehow neglected to actually release it. By the time they closed it down, very few people had gotten invites.
Maybe they were stingy with the invites because they couldn't scale up the servers?
XML is a gleaming beacon of purity and grace compared to the CTCP spec[1]. Something that should be relatively simple: "allow very basic RPC using inband signals." The mess of incoherent and mutually contradictory statements about how quoting these messages should happen makes it likely that anyone writing a bot either uses an existing library or still wakes up occasionally in teh middle of the night in a cold sweat.

[1] http://www.irchelp.org/irchelp/rfc/ctcpspec.html

Having written an IRC client and several bots, I actually like the simplicity of the protocol.
Yeah, the simplicity is a godsend. Lets you pump out a minimally viable client/bot in minutes with whatever language you like, without having to mess around with an existing framework or library.
I'll second that. For example, here's a bot that logs every channel you invite it to...in 50 lines of shell. How big would the equivalent XMPP bot be (libraries included)?

https://github.com/acg/logbot/blob/master/bin/logbot.sh

50 lines of clean comprehensible shell code even! Written with the traditional code-golfed style of shell scripting I bet you could half that without even trying. ;)
@bonch (your comment is 'dead')

The idiosyncracies that you have to get into when you want to write a proper client for humans, and what you actually have to worry about if your aim is just writing tools that use IRC (internal deployment bots, or whatnot) are miles apart. The vast majority of users will only be interested in the second.

Just follow the RFCs for the features that you need, and ignore everything else.

Anyway, IRC is plainly simple if you look at it's competition. I can use IRC with netcat without any significant effort; there are not a lot of other things I can say that about.

One protocol I've skimmed over is http://about.psyc.eu/ which claims to bridge IRC and XMPP, among numerous other things.

The claimed scope is so broad, though, that it's hard even to figure out a good starting point for further investigation.

What is so terrible about it? IRC was one if the first protocols I ever implemented, I found it a joy to work with, and surprisingly flexible.