Dear compiler folks,
Perhaps many of you have been following the recent discussion around Discord. The basic idea I think we are moving towards is that each team should select a “home” that fits them best. I am starting this thread for us to discuss what chat medium should be the home of the main compiler team (and its working groups, probably) going forward. I have my own opinions about this (which I’ll discuss below) but I wanted to hear from the rest of you.
In terms of procedure, we could just make a choice, but I also think it might be nice to do a “trial run” of the various options. For example, we could move the weekly meeting for N weeks and try out a few different things (I know that my opinions about each platform have been greatly influenced by putting the platform through its paces).
Why not just stick with IRC?
One option is that we just stick with IRC. I don’t think that’s a very good idea though. The bottom line for me is that IRC is not very acccessible for newcomers (or long term folks). In particular, I’ve found that being able to communicate asynchronously is key, since many of us are rarely aligned over timezones. But that requires people to setup a bouncer or some other kind of “advanced” setup (or pay for IRC Cloud). I’m sure all of us have experienced the frustration of seeing someone ask a question in
#rustc but then finding that they are not online when you would like to send them the answer. Given the importance of getting people involved, I don’t think IRC is the right choice.
What other platforms might we consider?
The primary question, of course, is: if not IRC, what platform should we use? I’ve tried a lot of them. For the compiler team specifically, I personally prefer Zulip, but I think Discord is also very nice. Here are the main benefits I see:
Zulip is a different take on chat platforms: they include threaded conversations. Currently, the NLL working group is the only using Zulip. We love it, but the threads take some getting used to: many folks are a bit confused by Zulip when they first get there, and the mobile app is kind of nonfunctional. But once you get over that, the threads are really helpful for scaling the channel. They make it easier to catch up on what you missed if you’ve been away for a few days. They also encourage less use of privmsg, because it’s easier to retain context when people are talking asynchronously.
- Pro: threads enable excellent scaling, great markdown support (links, tables, etc)
- Con: takes getting used to, mobile app needs love (but perhaps we can encourage the devs to fix the bugs!)
Discord is a very polished platform. Very easy to use. Great mobile app. They use Rust internally and are keen to have us. There is GitHub integration and everybody is “online all the time”, making it easy to have async conversations. Basically, it Just Works. Also, there are a lot of other Rust folk moving to Discord lately. It’s great to have everyone in one place.
- Pro: easy to use, people are there, responsive admins
- Con: markdown support is limited, no threads (see below)
I think it boils down to this. Discord is easier to get up and going and better for newcomers, but Zulip’s threads scale very well. The reason that I lean towards Zulip for the compiler team is that I think we tend to have detailed convesations where it’s useful to be able to keep context over time (e.g., when discussing how to fix a particular bug), and I think that it’s ok to ask a little investment from people to learn how to use it if they’re going to hack on the compiler. An even better option might be to have Zulip with a Discord bridge of some kind.
Another contender is Matrix. I’ve not tried Matrix deeply myself. I like the focus on interoperability but have concerns about performance – it also doesn’t offer threads, of course. Perhaps some people here can speak to its benefits.