Why IRC is Still Good in $CURRENT_YEAR

Author: Jake Bauer | Published: 2020-08-30

XKCD Comic #1782: Team Chat CC-BY-NC 2.5

Similar to how I think e-mail is still the best discussion platform, I think there is still a solid place for IRC in our lives.

IRC (Internet Relay Chat) is a communications protocol created in 1988 and, yeah, it shows. IRC is 100% plain text. No images, no videos, no stickers, no emoji reactions, just good ol’ plain text. It was also designed to transmit everything unencrypted at a time when the use of computer networks was limited mostly to universities, governments, and large corporations. This was a time when Hollywood-style 1337 h4x0rs were pretty much just kids using their modems to make long distance calls for free.

Nowadays, IRC may not be the best platform for private personal chats (though I think it can still work for that), but that doesn’t mean it’s not good for other things.

Arguably the best “feature” of IRC is that it’s still all in plain text. No multimedia or fancy features such as emoji reactions, integrations, or stickers keeps the bandwidth usage down and the focus on what people are saying, rather than on distracting memes and flashy things. It’s the same reason why people like lean websites, plain text email, plain text notes, and so on: plain text is easy, portable, lean, and quiet.

One aspect of computing and software design that many developers nowadays seem to forget is that over half of the world’s population does not have access to fast Internet and many millions of people, even in developed countries, are limited by bandwidth caps and spotty satellite or mobile Internet access. For these people, IRC can be a much better option compared to other chat platforms such as RocketChat, Mattermost, Slack, or Matrix, even if they have to use an IRC bouncer or a screen/tmux session on a remote server to not miss things if their connection is that spotty.

Did you know, IRC played a critical role in getting networks back up during the recent CenturyLink outage?

One of the biggest flaws I see people discuss when talking about IRC is that chat history is not saved by the server. This means that, if you want a record of the conversations which happen when you’re not connected, you’d have to use an IRC bouncer or a screen/tmux session which will keep you connected when you have to go offline. I can definitely see this being a limitation for a private group chat if this is not something you’re willing to do, but when it comes to open source collaboration or support, this makes IRC great for hashing out ideas, asking quick questions, and having conversations while hacking on things. In these cases, you don’t really care what’s happening when you’re not there. These kinds of synchronous conversations are perfect for the ephemeral nature of IRC.

Even though encryption is not mandated by IRC or enabled by default in many cases, you can still enforce encrypted client-server or server-server connections on your IRC server. This means that all messages in transit between clients and your server would be encrypted (usually with TLS) and the only weakness would be logs on the servers themselves or logs on client machines. If you and your friends like the plain text medium, it’s entirely possible to set up an IRC server which mandates encryption and doesn’t store logs long-term. If you’re in a group of people you can trust to be competent then it’s entirely possible to make IRC work this way and have a reasonable guarantee of privacy.

I suppose I should also mention the federating aspect of IRC since that’s quite a hot topic in the open source social platform world. IRC does federate in a way, but it’s not quite like the way Mastodon does. IRC networks are made up of one or more IRC servers and you can view and interact with any channels or users on the same network that the server you’re connected to is a part of. The way IRC exists right now is due to several network splits (netsplits) where some servers decided to split off of a big network to form their own, separate network (usually due to governance disagreements). This is why we have the LiberaChat IRC network alongside the Undernet, EFnet, and so on. Many of those splits occurred in the earlier years of IRC, and many of the larger networks like LiberaChat are quite stable, having a coordinated team of admins to make sure things keep running smoothly.

The reason why this isn’t really such a big issue when it comes to IRC though is that IRC doesn’t have accounts in the same way other platforms do. Accounts typically take the form of registering a nickname with a network’s NickServ bot to reserve it, but that’s often only mandatory for speaking on the larger networks as a spam countermeasure. Account registration is also so easy that you can join however many IRC networks you want with little hassle; connect, set your nick (often done automatically by your client), and a quick message to NickServ will get you up and running on just about every network.

IRC is still a really useful and good protocol for users who wish to have a mostly hassle-free chat experience. IRC is great for open collaboration and quick support in free software projects (far better than Slack or Discord) and it can be made to work for private chats especially if you run your own IRC server (I would recommend the Ergo. Yes, IRC is not necessarily great for non-technical users or those who require extensive guarantees of security; it might even be too much of a hassle for you, but this doesn’t mean it’s dead, useless, or outdated. IRC is not only still useful, but can still be the best tool for the job in the modern age, especially with protocol improvements (like chat history) in the form of IRCv3.