During discussions with my friends and colleagues, whenever the topic of chat protocols comes up, I often remark how simple the Internet Relay Chat (IRC) protocol is and how this simplicity has fostered creativity in the lives of many young computer hobbyists growing up in the late 1990s and early 2000s. For many of us who were introduced to the Internet during that time, writing an IRC bot turned out to be one of our first few non-trivial hobby programming projects that involved network sockets, did something meaningful, and served actual users.
It’s a big loss we let IRC kind of fall by the wayside as the world moved to things like Slack, Discord, and Teams. It turns out people want features like audio and video chat, emoji, images, videos, and so on – all things a slow-moving, classic standard like IRC will never properly support.
Before bittorrent , before emule, and a little before Direct Connect, IRC was the first (lookalike) p2p network I downloaded files from.
IRC isn’t a p2p network or protocol. You’re referring to DCC.
Yes, but DCC it's a IRC subprotocol that many clients supported. The last time I used it I think it was 3-4 years ago.
It wasn’t Zoom and Teams that did for IRC; it was proprietary instant messaging such as Yahoo and AIM and then Facebook chat. But it was of its time and pretty inefficient for ours; text only and prone to “net splits” and flood attacks. I used it a lot in college in the 90s; any computer room had someone with a terminal open with IRC messages flashing up it.
Matthew Smith,
I agree with you about the proprietary services. They’ve invested heavily away from federated/open networks because open networks go against their business models.
The “net splits” were kind of a resiliency feature though. They obviously could take down the entire network for every outage, but instead it was intentionally designed to run at reduce connectivity and run locally. Net splits are never ideal obviously, but they are still arguably better than the alternative of a full outage, which we still experience with proprietary services from time to time.
Alfman,
Sure, continuing with inconsistent partitions is one way to handle network splits. And given IRC’s information rate, I think that was the sensible choice at the time.
And, IRC being an “ephemeral” protocol was another reason business did not choose it. Yes it was possible to “replay” some logs: https://superuser.com/questions/732812/setting-up-an-irc-server-with-persistent-chat-history-and-timestamps-on-raspbian . But requires each community to do their own custom setups.
It could have survived better if someone implemented a “Discord” like system in IRC. I think Discord itself was the final nail in to IRC community’s coffin: https://news.ycombinator.com/item?id=15731193
sukru,
I don’t think the technology should begin and end with IRC. Obviously it’s very dated. Replacements that have merit should be accepted and they should replace predecessors over time. This to me is just part of evolution, which is good and I am a fan of progress including the innovations from discord.
But unfortunately all the leading companies taking the lion’s share of resources are paying our top minds to create closed centralized and fenced-off solutions, ugh! In the process we loose the benefits of open. federated, and interoperable solutions. Think of how far open/P2P/federated technology could go if the bulk of our resources had been invested in common community goals rather than corporate ones. Yes, this is wishful thinking; Capitalism rewards greed and I have no power to change this. But it’s just a shame that corporate greed is the reason open and interoperable solutions don’t get the resources they need to stay at the forefront of technology.
“It could have survived better if someone implemented a “Discord” like system in IRC.”
There is https://convos.chat/ a web interface that mimics discord’s visual style.
I guess an unwritten assumption here was: “… before Discord became popular”.
Or in fact, even earlier than that, as IRC became irrelevant long before Discord.
I wasn’t tracking the situation with IRC but a similar thing has happened to NNTP – another federated protocol. People have left it for all sorts of web-based forums. It wasn’t even the lack of good that was the issue – it was genuinely difficult to evolve a distributed system with multiple server and client implementations. Even simple things, like introducing utf-8 encoding were hard to agree on and to implement.
It is not bad people have left IRC or NNTP for easier/better alternatives, the bad part is the replacement services were all centralized. Starting from small blogs like this, through Reddits/Stackoverflows to Twitter and groups on Facebook federation was seen as, at best, not worth the effort and, at worst, an antifeature that is harmful to a company bottom line.
ndrw,
+1, exactly. You managed to put it a lot more concisely than I have.
sagum,
Thanks for the reference. It’s a fair point that you can webity old protocols. I’ve webified mainframe screens
For me though the goal isn’t necessarily to keep using old federated protocols but rather that the new protocols that eventually replace them should be open and federated too. However this isn’t happening. As a consequence the internet’s leading platforms have become mostly closed proprietary networks. This shift wasn’t done for our benefit, but for the commercial benefits of the corporations.
Open standards and open connectivity. Anything else is bullshit.
I would agree 100%; however, there is a second part of the equation that people don’t like. Users will need to pay some small monthly or yearly subscription to make this work because it costs money to maintain these servers that provide this functionality. Currently Google does it via data scraping and selling of data, and Apple via the crazy hardware pricing and paid upgrades.
This is what old school ISPs used to do before farming it all out. There’s also the issue of regulation and public interest driven and progressive taxation policy which can act as a modifier.
Within reason data traffic cost is zero due to peering arrangements. Servers handling SIP call connection isn’t onerous. The biggest cost of data provision is digging the hole in the ground to carry the cables. Once you’ve done that when there is a generational change you just blow a new optical fibre down. Similar principles extend to copper wire and mobile. There are data centres at pinch points in the UK which house all manner of servers. Most of the price inflation of traditional ISPs in the UK is caused by speculative investors and leveraged buyout vehicles passing on investor markup to customers.
I have no idea what country you are from but the US is not the best model for anything. I’d hate to be the person doing the comparative study across all the data points but there is a lot of unnecessary cost and profiteering in the US system. I find the European social democratic model much better.
I was involved with a bit of protest over this back in the day as well as raising a few questions about procurement and takeover cost breakdowns and Private Eye copied the argument and ran with it. I also caused a bit of a stink when after a telephone discussion the telecoms regulator took my rather pointed remarks about cartels and made a thing of it. In fact it’s really funny seeing one of the people involved in the general community reported in the media in the past year who back in the day led the charge to put a stop to some questionable behaviour. I won’t say what that was but it was big at the time and other shoes of various colours connected with this dropped over the years that followed. (They now actually have a successful career in that special interest area.) The point being is that you don’t always get what you want all the time and can sometimes go backwards as much as forwards but lobbying through whatever your chosen means is can be effective. Not everyone is corrupt. Not everyone is greedy. In fact there is a completely unrelated human rights case pending in the courts which I pushed for and influenced an NGO to run with which is long overdue. There’s many other potential cases in the pipeline and perhaps when the political weather changes again they will get their chance or maybe a new government will come in and they won’t have to. Draw what lessons from this you will.
Not necessarily. The way it was designed, IRC is a low bandwidth protocol where only small chat and control (CTCP) messages flow through the server. Anything large like a file transfer will establish a direct p2p connection between the two users transferring the file.
ISPs often provided IRC servers to their customers, universities often provided them, people ran their own as a hobby etc.
What this does need however, is an open network where everyone is reachable so that anyone could run a server or permit direct connections with other users. It doesn’t work when users are behind NAT and won’t really be a usable idea again until everyone has moved to IPv6. Users who have only partial connectivity from behind a NAT gateway are not true peers on the network, they are only clients and this has resulted in a lot of things moving to centralised client-server models.
As a student, I had to implement an IRC client. Man, it was so easy and logical, well documented. A real breeze to implement.
While it lacks many features, such as allowing message while not connected, it is a really neat. XMPP, another standardized communication protocol, is so much more complex.
You can use the command ‘/msg MemoServ SEND user text’ to send some text to a user, as long as it’s a registered user, of course.
You can see if you have new memos by using ‘/msg MemoServ LIST’.
Use ‘/msg MemoServ HELP’ for more information.
Such feature existed on freenode and it also exists on Libera.Chat.
Also, you might want to use an IRC bouncer (like ZNC) to keep your IRC connection permanent.
Oh… IRC… Thom, you are the reason I went on IRC in the first place, back in 2004.
And yeah, in 2005 I wrote my first IRC bot in Delphi 7. Sniffing the traffic of my IRC client to figure out the protocol.
Those were the days. I’m feeling a bit nostalgic.
The chat that Twitch uses is IRC based. You can actually logon via irc.twitch.tv, so IRC isn’t strictly abandoned, the kids today just don’t know they’re using it.
IRC is still alive. It is surely not growing, but isn’t dead (yet).
It’s not close to being dead and I’m not sure why others here are implying otherwise. I guess they’re either out of the loop or comparing it at its peak to its `twilight` years. No, it’s not as popular as it used to be, that’s a given, but there’s still tons of users and still new users showing up. Tons of software projects still host support/dev channels on IRC. Servers, services, and clients are all still actively developed as well. It’s still a good meeting place for those who prefer it.