The company that I currently work for is trying to migrate from
Slack. Nothing is certain yet, but a move seems likely,
and at the minimum I can say that we’re evaluating Slack and I’ve gotten to
check it out and play with it a bit.
The thing that is awesome about Slack is that it has a native IRC gateway. If
you use the IRC gateway you don’t get all of the whiz-bang features that the
native client has, but at least the IRC gateway basically works and is supported
by the company. This is a huge contrast to HipChat where the only way to get it
working with IRC is using
BitlBee which uses the XMPP
gateway that HipChat supports and BitlBee itself acts as a bizarre XMPP/IRC
bridge that maps the weird HipChat XMPP extensions into things that are sort of
like IRC. The BitlBee HipChat stuff mostly works and has been pretty solid for
me for about a year now, but it definitely has some quirks and is really strange
to use in a lot of ways.
I live and die by IRC, so for me the native gateway is a huge, huge win. There
are already a few quirks I’ve found (e.g. no scrollback when joining a new
room), but all in all the experience is miles ahead of using BitlBee with
Here’s why the IRC gateway is a huge win for me. Most of the same is true with
HipChat + BitlBee; this is more a commentary on using an IRC client to connect
to these newfangled chat systems than anything else.
First of all, like most serious IRC users I have an IRC session connected using
WeeChat running in an always-running
tmux session that’s on a remote server that I very
rarely power cycle (every few months to make sure I stay on top of kernel
updates). This isn’t the only way to do it, Irssi is
another great terminal-based IRC client, and
GNU Screen is getting a bit long in the
tooth but there’s nothing wrong with it at all. There are numerous other IRC
clients worthy of praise, WeeChat is just the one I prefer.
The reason this is cool is that I’m always connected to the chat system, so I
get chats from people all the time and can respond to them at my leisure. It can
be a bit annoying to other people who can’t tell if I’m actually on or am just
idling, but if anything I’ll chalk that up as a plus. If anyone really needs
to contact me, I have my phone number in a million places including in
PagerDuty so I’m not too concerned about that.
Second of all, WeeChat (and most other IRC clients) is incredibly customizable,
and it’s easy to filter our messages I don’t care about, get highlights on
arbitrary words, and a number of other features that are must-have for me.
Buffer management in WeeChat is really amazing and incredibly fast once you take
the time to learn how it works. I can easily handle really busy times on chat
better than my coworkers using the native clients. There are a million plugins
(and actually I’m not using any of them), but if you really want to get down
that rabbithole it’s an option. WeeChat is also scriptable in a bunch of
different languages including Python (my main day job programming language). I
have dabbled in WeeChat scripting a bit and while I’m by no means a pro, it’s
pretty easy to get started and do cool things. I might write a blog post about
this once I’ve written a more substantial WeeChat plugin.
Being able to keep client-side logs is also a godsend. There are a million times
where I’ve wanted to find something from my chat history—potentially months
(or even years) old, and being able to simply grep the chat logs is awesome. In
the same way that it’s common to quote from emails when replying, from time to
time I’ve found it incredibly useful to be able to quote from chat conversations
e.g. to substantiate timelines that were discussed or the division of
responsibility for projects. I’ve also had a lot of fun doing statistical
analyses of my conversations (e.g. what proportion of the messages come from me
v.s. from person X) and training Markov chain bots on chat logs.
There is one serious downside which is that given someone’s real name I don’t
know how to look up their nick/alias. For instance, suppose someone tells me I
need to talk to Aubrey Graham about a project, but he cleverly set his nick to
drizzy. I can use
/whois drizzy to figure out that
drizzy is Aubrey
Graham, but just given the name Aubrey Graham I’m not sure how to figure out
that his nick is
One more thing. If you want to use the Slack IRC gateway, I highly recommend
Calle Erlandsson’s excellent article
on the topic where he goes into a lot more details about various configuration
things and the plugins available.