summaryrefslogtreecommitdiff
path: root/published/slack-alternatives.txt
blob: f78e46985e45fdb61d6e65a3fb0de698aaddcd12 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
Open source software is not possible without collaboration and collaboration is not possible without communication. Collaborative communication in open source projects typically means some form of distributed chat.

In the past and indeed the present for most projects, that means IRC. IRC has some disadvantages though, and developers love a shiny new toy, which is part of the reason more than a few projects have moved to using Slack as the chat medium for their open source projects.

While there is nothing wrong with Slack -- in fact it's insanely good at managing and organizing distributed conversations -- it's not necessarily the best choice for open source projects. Indeed this is not the purpose of Slack. Slack's intended use is to provide a single dashboard or app for all sorts of different communication tools -- email, chat, Twitter, and more.

Slack is not primarily for public chats. The company itself discourages this use case, which should give large open source projects pause. But more to the point, Slack is closed source software controlled by a single company. It's the antithesis of open source.

In effect, moving from IRC to Slack means replacing an open protocol with decades of open source client software development and a robust distributed system for a single point of failure. Again, not to disparage Slack. 

Some open source software developers have spoken out against Slack as an IRC replacement, notably, Drew DeVault, whose post "<a href="https://drewdevault.com/2015/11/11/Bring-more-tor-into-your-life.html">please don't use Slack for FOSS projects</a>" made the rounds in programming circles a few months back. DeVault argues that "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."

There are essentially three problems with IRC that Slack and its imitators (more on those in a minute) solve. First, creating an account is easier. Enter an email address and password and you're done. Slack is also already widely used; there's a good chance a significant portion of developers looking to contribute to any given FOSS project are already using Slack elsewhere.

The second thing Slack offers is built-in support for attaching files and pasting code. While some IRC clients will follow links and pull in outside data like code snippets or images, some will not which means you can't rely on these features being present for everyone. With IRC you need to rely on a pastebin and file upload service to handle code and files. 

The other major advantage Slack has over IRC is persistent, searchable sessions. That makes it easy to see what you missed while you where away. While it's possible to do this with IRC, it's not easy.

There are ongoing efforts to improve IRC, notably the <a href="http://ircv3.net/">IRCv3</a> project, but if you're looking for a solution right now, IRC comes up short.

And there's no question that Slack is a very well designed, easy to use chat system. But it's closed source which makes it a questionable choice for open source projects. Still, if good old IRC really isn't working anymore -- and I would suggest your project take some time to really evaluate that question before proceeding -- there are open source Slack imitators that can also solve some of the problems with IRC, but are self-hosted and FOSS licensed.

The two closest things to Slack in the open source world are <a href="http://www.mattermost.org/">Mattermost</a> and <a href="https://rocket.chat/">Rocket Chat</a>. Both support all the popular features of Slack including inline code snippets (Rocket Chat even offers code highlighting), inline images, archived searchable conversations, easy sign up, web apps, desktop apps, and mobile clients. Rocket Chat also includes support for Markdown, and Mattermost can import Slack user accounts and channel archives to smooth the transition. 

Where the two differ is in the user interface and in the backend setup (Rocket Chat uses MongoDB behind the scenes, while Mattermost uses PostgreSQL). Mattermost user interface is a bit closer to Slack, while Rocket Chat seems to have taken more inspiration from full-featured IRC clients. 

Both, however, are self-hosted, which means projects can get most of the advantages of Slack over IRC, but retain control of the open source tools. If the history of web services teaches anything, it's that relying on third-party services for key parts of your development infrastructure is almost guaranteed to fail in the long run.

While Mattermost and Rocket Chat, along with other services like <a href="https://www.irccloud.com/">IRCCloud</a>, which piggybacks on IRC to offer a more Slack-like experience, can fulfill 90 percent of the Slack experience, none of the them match Slack 100 percent. Mattermost lacks an Android client (it's in the works), none of them have the amount of third-party integration that Slack offers, and none of them have the install base that Slack currently enjoys.

It's the last point that the open source community needs to consider. Ubiquitous install trumps everything else. With more and more developers using Slack on small teams at work (as it's intended to be used) it's natural to want to use the same tools for other projects. 

There's an opportunity here for open source though. Setting up and using Slack may be simple, but extending it is not. If more developers turn to open source solutions there will be more developers to hack on those solutions. More momentum means more features, more cool hacks and in the end a more useful product. This is why Apache trumps Microsoft IIS, WordPress thrives while Movable Type is just a memory, and Linux is the most wildly deployed OS on the server.

On the other side of the argument, lack of developer interest in alternatives is part of why Dropbox has no real open source competitor, Google Docs continues to be more popular than open source alternatives, and Skype faces almost no competition from the FOSS world.

Slack may be the best choice now, but investing in open source alternatives like Mattermost or Rocket Chat is the best choice for the open source community in the long term.