A brief guide to the IRC protocol
blog.webicity.info
blog.webicity.info
I know I did it. It's a great learning experience in network programming. And one you can brag to your friends in #whatever.
/jarek, developer, IRC user, not a bot programmer
I wonder how many clients are connected and receiving realtime messages during peak usage on say efnet.
edit: sorry I clearly phrased this poorly, I said "an ircd" but in my brain I was thinking of an ircd network like efnet, freenode, etc.
Of course, you could probably solve that by load-balancing, having multiple parallel ircd instances that share the backend, but then you're not having "an ircd" any longer.
I wrote the justin.tv chat server (which happens to be based on irc). A single one of our chat machines can handle about 120,000 concurrent connections. Available cpu is the limit, not number of ports.
On IRCNEt: 66290 98675 :Current global users 66290, max 98675
Which is probably significantly less than number of twitter users, but IRC is explicitly designed to be scalable.
http://github.com/kore/twircd http://code.google.com/p/tircd/
And there are some technical stuff too. Jabber is much heavier and noisier protocol. And afaik there isn't a Jabber client comparable to irssi yet.
That said, irssi-xmpp is certainly in need of some hacker love...
Personally I much prefer debugging XMPP to debugging IRC protocol issues since it's always obvious what is going on from what goes over the wire, whereas in IRC you are frequently forced to look up random specs to figure out what some obscure numeric code means to a particular implementation of the protocol.
IRC was the precursor to many specific stuff that later gave whole industries. Stuff like online dating didn't exist, interest groups like #linux or regional chatrooms like #Montreal. I think that jabber rose during the fall of IRC but they didn't manage to catch the fleeing users since their service is quite similar to what people were leaving. Since the web caught on online dating and such, IRC and jabber became less and less interesting for most of their former users.
Certainly not the best protocol ever invented, but I have fond memories of figuring out how it worked.
On the other hand, you do see a lot of the organic evolution of a protocol in what is IRC, which is valuable from both an historical and educational perspective.
The IRC protocol does exactly what it sets out to do, and there isn't really much over-the-wire overhead for client connections. The only information that's repeated unnecessarily is user hostmask data; everything else is mostly 100% useful.
It could really have only been a bit better if each event was described in a JSON- or YAML-like notation, but this was 1988, not 2008.
Compared to tons of other legacy protocols in use today (FTP!?), IRC isn't all that bad.
But, yes, anyone who complains about a new boziod protocol should be forced to look at the wonders and horrors of FTP, especially in the context of NATs.
"Gee, if only I could chat with two people in the same window..."