I've used more than my fair share of chat apps and solutions in the past, for both personal and professional use. AIM, MSN, Skype, IRC, Pidgin, HipChat, and Mattermost - to name the few that I've used for at least a year.
But over the years, they've all mostly faded away with two standing at the forefront: Slack for professional use, and Discord for gaming and casual use.
I use both on a daily basis, but strongly prefer Discord out of these two options, for both general use and coding discussion. Here I'm going to explain why Discord is better.
There are a ton of chat communities - and I'm certainly in more than one, and may dip in-and-out of even more every now and again.
Slack makes this a pain because of the way it tries to separate every server to be standalone. This certainly has its use in certain environments but is not ideal when you're in multiple servers. On the web app only a single server can be opened at once and every time you join a new server you essentially have to "sign up" for it again.
Discord makes it a breeze by having a single account for everything. You still get to have per-server nicknames and identities, but you can join a new server with the mere click of a link, all of your notifications get neatly handled in the same way, and you can quickly make new servers on-the-fly. It also gives you the ability to see which users are in mutual servers, create DMs and groups outside the server itself, and a bunch of other convenient features.
I'm a programmer, so in any given day there's a good chance I'll write or paste a snippet of code to discuss it with someone.
Slack has options for doing this - using standard markdown you can write inline or multiline code snippets. Alternatively, you can insert a snippet from a modal window, selecting the programming language the code is in and having that syntax highlight it as it puts it in chat.
Discord feels a lot more natural. There's no popup window to insert code - you do it all from the chat bar. You can write GitHub Flavored Markdown to tell what language it's in and therefore the syntax highlighting. There are little things that stop you from messing up too, like when you're writing a multi-line code block, hitting the 'return' key will insert a new line instead of submitting the message.
(Writing a multi-line code block in Discord's chat)
I'm not one to pass up paying for a decent product, especially one I'll be using on a daily basis, but it certainly comes into question here.
Slack has a free plan, but it only lets you store the last 10,000 messages. Remember a discussion from a few weeks back that you need to reference or get the context of a conversation? Maybe someone posted a code snippet to help someone else and now you've run into the same problem? Tough luck getting that back. Of course, Slack will let you keep unlimited messages, *for £6.30+ per user in the server - which is not practical for community servers.
Discord on the other hand, is completely free. Unlimited messages (I still have messages and files from three years ago accessible in Discord), group calls, custom emojis and everything else you could want from a chat application. They offer a paid subscription service called Nitro, but that only gives some additional cosmetic benefits, it's not required by any means for the core application.
It's a bit disappointing that this is even a concern but certainly is an important concern.
Slack has made me experience several hours of downtime multiple times over the last few months, which is a bit of a problem when it's a primary communication method with co-workers. Slack does offer a 99.9% uptime SLA but at double the cost of the paid plan.
Discord has also had its fair share of uptime problems over the years, especially back in 2017, but even when Discord is having problems it rarely affects the whole platform. Even if a server is down, odds are you still have access to DM the people on that server if you need to get in touch.
Slack, simply put, allows the server owners to export the entire chat history - including direct messages you may have made in private. Want to talk about something personal in private you might not want your boss to know about? Don't do it on Slack.
Discord doesn't offer any of this - which may, of course, be less than ideal if you're in an industry that's regulating you to archive all messages, but then you probably wouldn't be using Discord in the first place.
How can an application have a personality? There are lots of ways - how things are worded, what graphics there are, the little things that make you smile and just enjoy the experience of using an application.
Slack has a personality. It's playful and friendly in some places, like in the wording when you add too many reactions to a message. It's very limited though, the application itself still feels corporate and impersonal - which is perfect for its target audience, but not for everyone.
(Slack popup upon adding too many reactions)
Discord, on the other hand, has a ton of personality. Its target market is gamers, and it plays on that well. The application is full of personality, from the random community-submitted loading messages, playful custom emoji, and colourful members lists. There are memes and jokes all around, a solid and fun art style, the changelogs are an absolute pleasure to read, and there are so many little things that are in the application that you wouldn't expect, but are nice when you come across one - like the emoji picker changes to a random emoji whenever you mouse over it.
(Discord emoji picker)
(Discord changelog excerpt from August 8 2018)
While Slack is a pleasure to use all around, it's not got everything. The gaming vibe might not be for everyone, there's no way to white-label it or get an SLA, export everything easily, but that's not all as much as a concern for me.
However, there are some things at the top of my "want" list for Discord:
- Discord has very few professional-level integrations like Slack does. There's a very vibrant bot community, but still, a lot of work to be done to get things like JIRA, Trello, GitHub and the like on the same level of integration.
- Slack has neat interactive message features for bots, like question buttons and menus, which make interacting with these bots much more convenient.
- Threaded messages. I don't use them often in Slack, but they really do help keep conversations in context without disrupting the main flow of conversation.
- Keyboard accessibility. I admit I've not looked into this much, but you seemingly can't seem to navigate around the Discord interface easily with keyboard controls.
What're your thoughts on these chat applications? Did I miss anything that makes one any better or worse than its competitor?