I've been on IRC, off and on, for something like 20 years.
I've used XMPP for about half as long. I originally lost interest in 2014, when a plurality of XMPP site administrators pushed a de facto ban on server-to-server federation in the clear, meaning (among other things) that essentially all of the public XMPP servers other than Google Talk stopped talking to Google Talk. Facebook's chat service had recently migrated away from XMPP to their own MQTT-based protocol. Around the same time, developers of XMPP clients became divided between those who supported OTR and those who supported OMEMO as end-to-end encryption extensions (that divide apparentlypersists).
Those developments in the middle of the last decade added up to completely breaking my use-case: talking to people stuck using gtalk and facebook's XMPP-compatible messaging services, but often savvy enough to use free software clients like Pidgin and Adium, using OTR. So I slunk off back to IRC.
Things that are clear in 2020:
IRC on its own is a bad fit for multi-device usage. You either run many separate clients with their own nicks, or a bouncer, or put your client on some always-on box somewhere. Bouncers are pretty terrible in that they generally provide either way too much or not enough context to follow a conversation from one device to another. At the moment my compromise is to access a long-running client (specifically, these days, ERC) over SSH, with IRCCloud as my mobile backup.
File transfer in IRC is kind of a pain. Few people have good experiences using DCC, and it doesn't work at all behind a bouncer or over a SOCKS proxy. Any relatively complete IRC client setup involves some out-of-band way to share interesting files with a channel. For a long time, XMPP had similar woes with in-client file transfer being terrible, but it got better and now has a pretty robust way to share files with both individuals and groups.
Most of the people I talk to about my free software hobby are on IRC (it might be almost as accurate to say that I have an IRC hobby that's aided and abetted by yak-shaving a lot of free software).
From an extensibility and yak-shaving point of view, IRC has the better clients. For XMPP, the protocol might have "Extensible" in the name, but clients are usually either barely-working proofs of concept or slick, finished products without a lot that needs configuring or that can be configured. In my first go-around with XMPP, my main client was BitlBee, which let me subject XMPP to the whims of my IRC client of the moment (usually an Emacs one).
2020 XMPP looks a lot different than mid-2010s XMPP, thanks to wider adoption of OMEMO and things like Message Archive Management and Message Carbons making multi-device XMPP a sane experience. Sadly BitlBee hasn't really kept up with a lot of that.
I run too many damn messaging clients. I'm very far from the utopia of connecting to everything from one client.
I mostly use IRC even for one-to-one chats, but (aside from a few people using irssi-otr or something) IRC does not have an end to end encrypted private chat option. This is in contrast to every other thing I use. Maybe it'd help me toward harm reduction to have me spend most of my time somewhere that end-to-end encryption is easily available when desired.
So, I'm considering trying something different, and letting XMPP eat IRC, where once I let IRC eat XMPP. I think in the new year I'll try using Biboumi as my main connection to IRC and see how it goes.
What do you think?