Daniel Oaks

Internet Relay Chat (IRC) and Standards 28 Dec 2016

IRC is very strange from a standardisation perspective, and where it’s gonna end up isn’t clear.

IRC is a weird beast… really weird. It’s like 30 years old, there’s no controlling body, and the protocol has been randomly extended in random ways by random vendors over the years. Some of this is cool and awesome, but some of it makes IRC, on the whole, a bloody mess.

You can’t get 30 years of vendors to sit down in a room and sort their issues out. You can’t go get a million different users and orgs to upgrade their old software at once. Things are old and broken and fragile, and new code tends to be written on top of piles of existing, unspecified hacks.

But I still really like IRC. I like the protocol, the ecosystem, the communities. The fact that it’s so open and so widely-used is precisely the reason why it’s grown in this way, ended up as this mess, and why it’ll continue to have these sort of issues in the future.

When I work with IRC I know I’m working with a broken, old, fragile, fragmented protocol. But I know that people are working on cool new features, and people are working to try to standardise years of cruft and differences. Hell, the Modern stuff I’m on came specifically out of a desire to try to help here, and similarly that’s why I took up maintaining the Def lists (plug plug plug).

IRCv3 is a good stepping stone as well. It has good parts, it has bad parts. It’s managed to push out a lot of cool, useful shit, bring vendors together to talk out issues and similar stuff. There are big problems, obviously (like the lack of client participation, the bike-shedding, the velocity issues, etc), but I think it’s at least a one-step-back, three steps forward kind of deal.

New protocols (Matrix, etc) are out there, look bloody awesome, and are working on some damn cool stuff. But there’s always gonna be IRC. The main result of IRC has been creating communities and helping people chat online, and that’s what a lot of us are in this for. New protocols like Matrix aren’t to be avoided or pushed away, they should be embraced as a part of the ecosystem of cool, open chat protocols that let people talk.

Similarly, changes shouldn’t be veto’d because we want to keep the protocol ‘pure’, or because some existing standards group is going about it in a way you don’t like. Do extensions your way, write them up so that they’re at least specified and other software can have a shot at implementing them as well, and leave the “formal” standards part ’til later. As well, let’s try to use existing solutions to our advantage more often, rather than engineering our own custom solutions every single time.

The main point of what we do should be connecting people together to say cool stuff, learn from each other, and to build communities. In that light, working with stuff like Matrix and new chat protocols is awesome and can only benefit us! The more we try to segregate ourselves and keep the protocol exactly the way it currently is (or was) specifically because of nostalgia, the more we’re limiting ourselves and the ecosystem as a whole.

IRC is changing. There are new protocols, new services, and new ways that people use real-time chat systems. Let’s grow with it and, while keeping compatibility with the past, continue building cool new stuff.

Daniel Oaks

Hi there! I'm a technical writer and tech generalist. I've written and tested a lot of software and helped all kinds of companies organise info, improve their documentation, and explain things to their users.

I'm also open for work, so please reach out!

IRC Server Protocols and Standardisation 27 Mar 2017

Why do IRC servers not communicate with a standard protocol, and can we introduce a standard protocol to talk between them? Having a multitude of ...
Read more

Negativity and Burnout in Standards Communities 10 May 2019

Standards communities are weird places. There aren't many communities where people can hone in on a single sentence and have arguments about it tha...
Read more