I’ve noticed that more and more projects are using things like Slack as the chat medium for their open source projects. In the past couple of days alone, I’ve been directed to Slack for Babel and Bootstrap. I’d like to try and curb this phenomenon before it takes off any more.
The last one is a real stinker. Slack is not a tool built for open source projects to use for communication with their userbase. It’s a tool built for teams and it is ill-suited to this use-case. In fact, Slack has gone on record as saying that it cannot support this sort of use-case: “it’s great that people are putting Slack to good use” but unfortunately “these communities are not something we have the capacity to support given the growth in our existing business.” 1
IRC, or Internet Relay Chat…
I often hear that IRC is dead. Even my dad pokes fun at me for using a 30 year old protocol, but not after I pointed out that he still uses HTTP. Despite the usual shtick from the valley, old is not necessarily a synonym for bad.
IRC has been around since forever. You may think that it’s not popular anymore, but there are still tons of people using it. There are 87,762 users currently online (at time of writing) on Freenode. There are 10,293 people on OFTC. 22,384 people on Rizon. In other words, it’s still going strong, and I put a lot more faith in something that’s been going full speed ahead since the 80s than in a Silicon Valley fad startup.
There are several things Slack tries to solve about IRC. They are:
Code snippets: Slack has built-in support for them. On IRC you’re just asked to use a pastebin like Gist.
File transfers: Slack does them. IRC also does them through XDCC, but this can be difficult to get working.
Persistent sessions: Slack makes it so that you can see what you missed when you return. With IRC, you don’t have this. If you want it, you can set up an IRC bouncer like ZNC.
Integrations: with things like build bots. This was never actually a problem with IRC. IRC has always been significantly better at this than Slack. There is definitely an IRC client library for your favorite programming language, and you can write your own client from scratch in a matter of minutes anyway. There’s an IRC backend for Hubot, too. GitHub has a built-in hook for announcing repository activity in an IRC channel.
Here’s a short, incomplete list of important FOSS projects using IRC:
The list goes on for a while. Just fill in another few hundred bullet points
with your imagination. Seriously, just join
#<project-name> on Freenode. It
We use IRC at Linode, even for non-technical people. It works great. If you want to reduce the barrier to entry for non-technicals, set up something like shout instead. You can also have a pretty no-brainer link to webchat on almost every network, like this. If you need file hosting, you can deploy an instance of sr.ht or something like it. You can also host IRC servers on your own infrastructure, which avoids leaving sensitive conversations on someone else’s servers.
In short, I’d really appreciate it if we all quit using Slack like this. It’s not appropriate for FOSS projects. I would much rather join your channel with the client I already have running. That way, I’m more likely to stick around after I get help with whatever issue I came to you for, and contribute back by helping others as I idle in your channel until the end of time. On Slack, I leave as soon as I’m done getting help because tabs in my browser are precious real estate.
Addressing feedback on this article.
Slack IRC bridge: Slack provides an IRC bridge that lets you connect to Slack with an IRC client. I’ve used it - it’s a bit of a pain in the ass to set up, and once you have it, it’s not ideal. They did put some effort into it, though, and it’s usable. I’m not suggesting that Slack as a product is worse than IRC - I’m just saying that it’s not better than IRC for FOSS projects, and probably not that much better for companies.
Clients: Slack has several clients that use the API. That being said, there are fewer of them and for fewer platforms than IRC clients, and there are more libraries around IRC than there are for Slack. Also, the bigger issue is that I already have an IRC client, which I use for the hundreds of FOSS projects that use IRC, and I don’t want to add a Slack client for one or two projects.
Gitter: Gitter is bad for many of the same reasons Slack is. Please don’t use it over IRC.
ircv3: Check it out: ircv3.net
irccloud: Is really cool and solves all of the problems. irccloud.com