logo

drewdevault.com

[mirror] blog and personal website of Drew DeVault git clone https://hacktivis.me/git/mirror/drewdevault.com.git

Please-stop-using-slack.md (6438B)


  1. ---
  2. date: 2015-11-01
  3. # vim: tw=80
  4. layout: post
  5. title: Please don't use Slack for FOSS projects
  6. tags: [slack, irc, free software]
  7. ---
  8. I've noticed that more and more projects are using things like Slack as the chat
  9. medium for their open source projects. In the past couple of days alone, I've
  10. been directed to Slack for Babel and Bootstrap. I'd like to try and curb this
  11. phenomenon before it takes off any more.
  12. ## Problems with Slack
  13. Slack...
  14. * is closed source
  15. * has only one client (*update: errata at the bottom of this article*)
  16. * is a walled garden
  17. * requires users to have a different tab open for each project they want to be
  18. involved in
  19. * requires that Heroku hack to get open registration
  20. The last one is a real stinker. Slack is not a tool built for open source
  21. projects to use for communication with their userbase. It's a tool built for
  22. teams and it is ill-suited to this use-case. In fact, Slack has gone on record
  23. as saying that it *cannot* support this sort of use-case: "it’s great that
  24. people are putting Slack to good use" but unfortunately "these communities are
  25. not something we have the capacity to support given the growth in our existing
  26. business." [^1]
  27. ## What is IRC?
  28. IRC, or Internet Relay Chat...
  29. * is a standardized and well-supported protocol [^2]
  30. * has hundreds of open source clients, servers, and bots [^3]
  31. * is a distributed design with several networks
  32. * allows several projects to co-exist on the same network
  33. * has no hacks for registration and is designed to be open
  34. ### No, IRC is not dead
  35. I often hear that IRC is dead. Even my dad pokes fun at me for using a 30 year
  36. old protocol, but not after I pointed out that he still uses HTTP. Despite the
  37. usual shtick from the valley, old is not necessarily a synonym for bad.
  38. IRC has been around since forever. You may think that it's not popular anymore,
  39. but there are still tons of people using it. There are 87,762 users *currently
  40. online* (at time of writing) on Freenode. There are 10,293 people on OFTC.
  41. 22,384 people on Rizon. In other words, it's still going strong, and I put a lot
  42. more faith in something that's been going full speed ahead since the 80s than in
  43. a Silicon Valley fad startup.
  44. ## Problems with IRC that Slack solves
  45. There are several things Slack tries to solve about IRC. They are:
  46. **Code snippets**: Slack has built-in support for them. On IRC you're just asked
  47. to use a pastebin like Gist.
  48. **File transfers**: Slack does them. IRC also does them through XDCC, but this
  49. can be difficult to get working.
  50. **Persistent sessions**: Slack makes it so that you can see what you missed when
  51. you return. With IRC, you don't have this. If you want it, you can set up an IRC
  52. bouncer like [ZNC](http://znc.in/).
  53. **Integrations**: with things like build bots. This was never actually a problem
  54. with IRC. IRC has always been significantly better at this than Slack. There is
  55. *definitely* an IRC client library for your favorite programming language, and
  56. you can write your own client from scratch in a matter of minutes anyway.
  57. There's an [IRC](https://github.com/nandub/hubot-irc) backend for Hubot, too.
  58. GitHub has a built-in hook for announcing repository activity in an IRC channel.
  59. ## Other projects are using IRC
  60. Here's a short, incomplete list of important FOSS projects using IRC:
  61. * Debian
  62. * Docker
  63. * Django
  64. * jQuery
  65. * Angular
  66. * ReactJS
  67. * NeoVim
  68. * Node.js
  69. * everyone else
  70. The list goes on for a while. Just fill in another few hundred bullet points
  71. with your imagination. Seriously, just join `#<project-name>` on Freenode. It
  72. probably exists.
  73. ## IRC is better for your company, too
  74. We use IRC at [Linode](https://www.linode.com/), even for non-technical people.
  75. It works great. If you want to reduce the barrier to entry for non-technicals,
  76. set up something like [shout](https://github.com/erming/shout) instead. You can
  77. also have a pretty no-brainer link to webchat on almost every network, [like
  78. this](http://webchat.esper.net/?nick=&channels=truecraft). If you need file
  79. hosting, you can deploy an instance of
  80. [sr.ht](https://github.com/SirCmpwn/sr.ht/) or something like it. You can also
  81. host IRC servers on your own infrastructure, which avoids leaving sensitive
  82. conversations on someone else's servers.
  83. ## Please use IRC
  84. In short, I'd really appreciate it if we all quit using Slack like this. It's
  85. not appropriate for FOSS projects. I would much rather join your channel with
  86. the client I already have running. That way, I'm more likely to stick around
  87. after I get help with whatever issue I came to you for, and contribute back by
  88. helping others as I idle in your channel until the end of time. On Slack, I
  89. leave as soon as I'm done getting help because tabs in my browser are precious
  90. real estate.
  91. [First discussion on Hacker News](https://news.ycombinator.com/item?id=10486541)
  92. [Second discussion on Hacker News](https://news.ycombinator.com/item?id=11013136)
  93. ## Updates
  94. Addressing feedback on this article.
  95. **Slack IRC bridge**: Slack provides an IRC bridge that lets you connect to
  96. Slack with an IRC client. I've used it - it's a bit of a pain in the ass to set
  97. up, and once you have it, it's not ideal. They did put some effort into it,
  98. though, and it's usable. I'm not suggesting that Slack as a product is worse
  99. than IRC - I'm just saying that it's not better than IRC for FOSS projects, and
  100. probably not that much better for companies.
  101. **Clients**: Slack has several clients that use the API. That being said, there
  102. are fewer of them and for fewer platforms than IRC clients, and there are more
  103. libraries around IRC than there are for Slack. Also, the bigger issue is that I
  104. already have an IRC client, which I use for the hundreds of FOSS projects that
  105. use IRC, and I don't want to add a Slack client for one or two projects.
  106. **Gitter**: Gitter is bad for many of the same reasons Slack is. Please don't
  107. use it over IRC.
  108. **ircv3**: Check it out: [ircv3.net](http://ircv3.net)
  109. **irccloud**: Is really cool and solves all of the problems. [irccloud.com](https://www.irccloud.com/)
  110. **2018-03-12**: Slack is shutting down the IRC and XMPP gateways.
  111. [^1]: [Slack is quietly, unintentionally killing IRC - The Next Web](http://thenextweb.com/insider/2015/03/24/slack-is-quietly-unintentionally-killing-irc/)
  112. [^2]: [RFC 1459](https://www.rfc-editor.org/rfc/rfc1459.txt)
  113. [^3]: [Github search for IRC](https://github.com/search?o=desc&q=irc&s=stars&type=Repositories&utf8=%E2%9C%93)