(Edit to add Links to the IRC networks.)
To manage all this, and not miss interesting messages sent when I'm not in attendance, I use the bip bouncer program. bip sits on my shell box and keeps me connected all the time and keeps a backlog of messages that it sends to my client when I connect.
My IRC client of choice is the fairly lightweight rcirc client that comes with Emacs. Many moons ago I used to use ZenIRC, but rcirc is nicer in many ways.
Way back in 1991 when I first discovered IRC I used ircII and a bunch of silly scripts to do silly actions and whatnot, but I might just be a little more mature now. If someone recognizes Teakettle from that time, get in touch!
rcirc identifies an IRC server by its FQDN. This is a problem if you
want to have several connections to the same server, like you would if
you connect to a bip bouncer several times. A workaround is to add
something like this to
18.104.22.168 freenode 22.214.171.124 oftc 2001:888:22b3::2 freenode 2001:888:22b3::2 oftc
Then you can use something like:
(setq rcirc-server-alist '( ("freenode" :port NNNN :encryption tls) ("oftc" :port NNNN :encryption tls)))
(where "NNNN" is the bip port number, obviously.)
Not very pretty, I know, but it works.