Over on PaulGraham News, there's an ongoing discussion about using Slack for FOSS projects. It's interesting but almost entirely focuses on the technical and UX aspects of why IRC has failed, while ignoring what is in my opinion the most important aspects of a chat platform: The social aspects.
Back in 2006, I got involved in an open source C compiler that ran on PalmOS devices, OnBoard
C. Great little piece of kit and was the driving force behind me learning how to program as a middle
school student with no reliable access to a single computer, since my parents shared custody over
me. OnBoardC was mostly a community that existed on YahooGroups, but I discovered that an offshoot
of the community hung out on IRC, in
#srcedit (named after the OnBoardC text editor). This led me
down the rabbit hole of discovering IRC, installing a client (on my palm T|X as well), and meeting
these people from all over the world in real time chat.
Eventually one of the community members got tired of my constantly connecting and disconnecting and
gave me a shell account on his server where I could run a persistent
irssi in a
and have full-time access to a real Linux server via an SSH client (again, running on my Palm T|X).
Something weird happened when I had a ubiquitous connection to the outside world: I realized it
existed. I stumbled in to
#teensonlinux a place for high school and middle school students to talk
about Linux and Free Software. The owner of the IRC channel and de-facto head of that community
lived a 20 minute drive away from me and informed me that there was a group of people who met IRL
once a month to talk about Free Software, the Phoenix LUG. Fast forward nearly a decade and I can
trace the success of my career as a software engineer, and the path that's lead me to be a leader at
one of the most successful tech companies in the world, to my joining a global chat network where
tribes mingled freely.
Slack, in my opinion, is killing that by giving each community a walled-garden. Had I joined the OnBoardC Slack, I would have probably gone down an incredibly different path in my life, I would have met different people and who knows if I would even be in software engineering -- I was planning to go to school to become a Civil Engineer back then. IRC-as-a-watering hole was instrumental to my success as a software engineer and free software advocate and it is dying. I'm a member of two Slack communities which I rarely participate in because it doesn't integrate in to my other systems. Sure, I have the IRC gateway set up, but I just connect to ZNC so I have to remember to do that. Their mobile client "works", but I think that engaging in long chat on a phone is terrible.1 As a result, the communities that I used to interact with on IRC, I rarely interact with any more due to the overhead of remembering to connect. With IRC, I was just there. With Slack I have to keep multiple browser tabs open or remember to switch between them, when I don't even want a browser open in the first place.
People say that Slack is winning because of its ease of use and great UX2, but an equally important aspect, especially among the more activist-centric slack communities I've heard about is that it's much harder to bring harassment and spam in to a walled garden. Slack solves the spam problem by walling your tribe off from the other tribes, and while that is a solution, I don't believe its a good solution.
Which brings me to my point, a somewhat better solution.
Over the last few months, I've started using a neat decentralized chat platform called Matrix. It started as "I want to build a distributed RPC for my crazy vest computer", but as I've started to fall in to using it, I've realize that the system as a whole is capable of solving the problems of IRC while keeping the network effects that make it so powerful.
The ickygross protocol is gone, chat history is baked in to the spec, there are some great clients being developed with mobile and push notifications and all the things Slack users love. It's got a great community of developers and power users, and it is decentralized. It's got end-to-end encryption on the way, using an implementation of Axolotl. I built a client in a few weeks. The possibility of push-button chat via OAuth is built in to the spec. It can bridge to other chat networks like IRC.
Most importantly though, it's in a great position to solve the spam/harassment problem by serving as a base for a reputation system by its very nature as a decentralized system. And it's something that the core developers know they have to solve in a way that can keep the system as a whole surviving. And it's something I think they can do pretty easily as either a core part of their DAG or as a side-channel. Imagine being able to set your homeserver to say "only allow new chats from people who my friends and I have decided aren't a total shitbag." Build up enough reputation amongst my tribe in the open watering holes before you're able to spout hateful garbage. People have talked of dogecoin and similar as a Whuffie and in my mind Matrix is a far more interesting platform to build something like that on.
Matrix is the distributed decentralized future that we all deserve.