There has recently been quite some drama on IRC: the largest IRC network dedicated to free/libre and open source software (FLOSS), Freenode, has been taken over by a fraudolent “entrepreneur”, causing the enitre (volunteer!) staff that had operated the network for decades to just quit en masse to create an alternative to Freenode, named Libera.

Most communities and projects that previously relied on Freenode have now started a migration process to move to the newly enstablished Libera or to the pre-existing OFTC networks, leaving Freenode with “skeleton” channels and users —so much so that the new Freenode administration has made changes to the Terms of Service to basically allow, if not straightforwardly encourage, hostile takeovers of “inactive” community channels.

Drama aside, I've taken the switchover from Freenode to Libera as an opportunity to do some long-needed cleanup of my IRC networks and channel list —but not just that.

In a famous XKCD strip, “Team Chat”, Randall Munroe pokes fun at the surprising persistence of IRC as a communication platform: from the “old days” in which it was the protocol for both real-time and asynchronous communication, to the current times, where every major innovation in “instant messaging” has to allow some kind of bridge to IRC, to a hypothetical future where all human consciuousness has merged, except for that single individual that still uses IRC to interface and communicate with others. The alt-text of the comic reveals an even more distant future, where finally some progress is made … in a fashion:

2078: He announces that he's finally making the jump from screen+irssi to tmux+weechat.

This is quite the nerdy joke (as frequent with XKCD).

For the uninitiated, screen is a terminal multiplexer, i.e. a program that allows you to control multiple terminals from a single one. One of the major features of terminal multiplexers is that they are “resistant” to disconnections: if your connection fails while you're using the multiplexer, you can reattach to the previous session when the connection comes back up, allowing you to continue working with nothing worse than some wasted time. This particular feature makes it a very convenient “wrapper” in conjunction with an IRC client: you run the client from within a multiplexer session running on some server, and this allows you to reconnect to it from anywhere and never lose track of your IRC conversations.

The joke is that screen is “a bit long in the tooth”, and there are more modern and feature-rich terminal multiplexers around, tmux being the most common one. Similarly, irssi is by many considered now a bit “stale” and underdeveloped, compared to other IRC clients such as weechat. Still, most people have a tendency to stick to the tools they're used to (“if it's not broken, don't fix it”), so that switching to a more modern multiplexer and IRC client combo would be considered “more effort than it's worth” —it would take some very strong selling point of the new combo to convince them into investing time and active brain power for the switchover.

(It would be so much simpler if there were ways to convert ones' configuration from one tool to the other, but not only this isn't always possible, it's also such a low-priority feature for most developers that it's rarely done even when possible.)

In my case, I have long abandoned screen for tmux, not only to host my “permanent” connections to IRC, but in general for all my terminal multiplexing needs. (Why? That would be a long story, but the short of it is that I find the level of control and (VIM-like) command syntax of tmux sufficiently superior to their screen counterparts to justify the switch; finding a documented tmux configuration that eased the transition also helped a lot.)

So for a long time I was in a sort of hybrid (XKCD-wise) situation, using the venerable irssi as my IRC client, but within tmux. And with the Freenod/Libera.chat drama, I've had the opportunity to revisit the relevant XKCD comic, and finally give weechat a try.

I'm sold. I've now completed the transition to tmux+weechat, and thus consider myself ready for 2078.

(If you're curious about the reason why: weechat's selling point for me was their relay feauture, that allows connection to a running weechat instance from e.g. the Android app in a more practical way than going through something like ConnectBot or its specialized cousin to connect to the IRC client running in a terminal multiplexer via SSH —because let's be honest here, Android as an operating system, and the devices on which it runs, aren't really designed for this kind of usage, usually.)