Why IRC is Still Good in $CURRENT_YEAR

Written By: Jake Bauer | Posted: 2020-08-30 | Last Updated: 2020-09-02

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 in plain text (i.e. unencrypted) all across the Internets in a time when the use of these 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 is probably not such a good platform for private personal chats, 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 the content of 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 pure. You can even still send files using IRC.

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 people, even in developed countries, are limited by bandwidth caps and spotty satellite or mobile Internet access. For these people, IRC can be the much better option compared to other collaboration 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 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 because these are synchronous conversations which is 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 and security.

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 Pleroma or Mastodon do. In the world of IRC, IRC networks are made up of one or more IRC servers. If you connect to an IRC server, you can view and interact with any channels or users on the same network that server is a part of. The way IRC exists right now is due to several network splits (netsplits) where many servers decided to split off of a big network to form their own, separate network several times throughout IRC history. This is similar to having a group of several Mastodon/Pleroma instances which have decided to federate with nobody else except those also in the group and is why we have the Freenode IRC network alongside the Undernet, EFnet, and so on.

The reason why this isn’t really such a big issue when it comes to IRC though is that IRC doesn’t really have accounts. Sure, you can usually register a nickname with a network’s NickServ bot to reserve it, but that’s not mandatory on most networks. This means you can join however many IRC networks you want with little hassle; you just have to connect and set your nick.

So, overall, IRC is still a really useful and good platform especially for software minimalists and technical users who wish to have a relatively hassle-free 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 as long as you can trust everyone in the group to be competent. 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. There are also improvements coming in the form of IRCv3.

This is my ninety-eighth post for the #100DaysToOffload challenge. You can learn more about this challenge over at https://100daystooffload.com.