Sunday, November 1, 2015

Why I don't like Slack

Today on one of the IRC channels I sit on, this was pointed out to me. And you know, I haven't really quite talked about it. I mean, anyone who hangs with me on IRC already knows that I hate Slack, but I thought I'd finally put it in "post" form, instead of it being stretched out into numerous IRC lines.

Introducing: Slack

Alright, so some backstory. For folks that don't know, Slack is a web-based messaging service, primarily meant for teams. They have apps for mobile and desktop, much like someone else that I'm going to mention later on in this post. Here's the introductory video to Slack:
It seems to be popular with a lot of companies out there. In fact, Slack seems so promising that they've gotten a lot of investment. On the surface, Slack looks like a solution that companies have been waiting for. But that's about it, as far as I am concerned.


Introducing: IRC

As it turns out, what Slack is trying to do has been answered for many, many years via a protocol called IRC, or Internet Relay Chat. IRC has existed "forever", being almost as old as email. IRC is well known for being able to communicate with a large amount of people at the same time, all in real time.

IRC is an open protocol, which means that (as long as IRC servers follow the RFCs) you should be able to use any client to connect to any server, and have it work fine. The thing with Slack is that it isn't IRC. In fact, if you want to use IRC with Slack, you have to use their clunky IRC bridge system.

To be fair, Slack does solve a few issues that, to this day, is still kind of an iffy area for IRC.
  1. File sharing
  2. Persistent sessions
To share files on IRC, you really only have 2 options: try using (X)DCC, or use a file sharing/hosting service, and just paste a link into the IRC channel. Slack solves the file sharing problem by having their own hosting service for files. They've made it so seamless that all you have to do is drop a file onto the page, and it'll pick it up. Only a few IRC clients out there have some kind of integration with a file sharing service.

When you use a desktop client for connecting to IRC networks, your connection is essentially bound to how long you keep your client open. If you turn off your computer, your session to the IRC server is closed and you'll no longer be kept in the loop with missed messages. Slack solves this issue by acting as the "middle man" -- your connection to the room is kept while you're gone. When you connect to Slack again, the Slack server gives you all of your missed messages. This removes the need for your computer to be on 24/7, just to keep up with messages. For IRC, there's only a few solutions for persistent connections. Those can range from standard IRC bouncers, up to a fully integrated solution like IRCCloud. More on that in a bit.

To me, the thing that really makes me dislike Slack is because I feel that it's (indirectly) killing the IRC protocol. Instead of adding a pretty interface on top of something that's open, Slack decided to build their own system that basically does what IRC can do, but with a prettier interface and some gap-filling for areas that IRC might lack, like a defacto way to share files. A lot of people say that IRC is dying, but that isn't true. Freenode continues to see growth in userbase, and they're the largest IRC network around.

With all of that being said, I do want to turn my attention to the one thing that is like Slack, but with the intention to stay true to the IRC protocol, and it's nature: IRCCloud

Introducing: IRCCloud

Here is a screenshot of my IRCCloud window (inside of a Chrome frame). I'm using their stock "dawn" theme. They have other themes available as well.
Put simply from their site description: "IRCCloud is a modern IRC client that keeps you connected, with none of the baggage. Stay synced and notified wherever you are with our web and mobile apps." IRCCloud is probably one of the more controversial IRC clients out there, but I personally believe that all the noise is unnecessary.

IRCCloud actually solves those 2 issues mentioned earlier. IRCCloud has their own file sharing service, as well as their own pastebin service. IRCCloud also keeps you connected 24/7, if you're an individual paying subscriber, or part of a team. IRCCloud has a free component to its service that keeps you connected only 2 hours after you leave the mobile apps or the browser.

The thing about IRCCloud is that even though it uses the open IRC protocol (that's great!), it doesn't have a marketing budget. All of the hot-shot investors must think that Slack has something better than what IRCCloud can offer. IRCCloud more than likely doesn't have the capital to hire more developers and even create a marketing budget like Slack can, but they have gotten investments before. Despite this, I think that IRCCloud is still a great product. So much so that I even have a premium subscription to their service.

IRCCloud does have a roadmap (see the "In Development" section of their pricing page), but they don't have a very large team. I think they're back down to having a team of 4 people: Russ, James, Richard, and Sam. Russ and Richard work on the backend, James covers the web frontend, and Sam covers the mobile apps.

With all of that said, that's why I don't like Slack. I'd much rather folks continue to use an open system, even if the client is closed source. IRC itself isn't anywhere near as popular as it used to be back in its hayday, but I'd very much love to keep it alive. I don't mind Slack with their mission, but I would like them a lot more if they used IRC as their foundation, instead of going with an entirely custom system. Did they even consider IRC as a foundation?