[llvm-dev] [cfe-dev] RFC: Moving toward Discord and Discourse for LLVM's discussions

Matthew Hodgson via llvm-dev llvm-dev at lists.llvm.org
Mon Nov 18 17:17:06 PST 2019


On 18/11/2019 17:47, David Truby via llvm-dev wrote:
> Hi all,
> 
>> On Mon, 2019-11-18 at 08:09 -0500, Nico Weber via llvm-dev wrote:FWIW
>> I'm a fan of using open-source stuff for open-source projects.
>> Discourse looks open source, but Discord doesn't as far as I can tell
>> (?).
> 
> As regards this, I wonder if Matrix (matrix.org) has been considered at
> all? It's an open standard protocol with a number of open source
> clients that behaves very similarly to Slack/Discord. A number of other
> open source communities I follow are using this already.

[ Disclaimer: I'm the project lead for Matrix.org, so am hardly 
impartial on this.  (That said, we keep up with LLVM given we lean on it 
hard via emscripten when compiling our end-to-end encryption 
implementation (https://gitlab.matrix.org/matrix-org/olm) down to WASM 
and JS, so I have some tenuous claim to be lurking here ;) ]

We built Matrix to be an entirely open network and open standard chat 
protocol, with the intention of combining the good bits of IRC (the 
community; the openness; the standardisation; the relative ease of dev; 
open source servers & clients) with clients which provide an accessible 
UX of similar quality to Discord/Slack.  Riot.im is the most advanced 
client, and while it's still not quite as glossy as Discord, the gap is 
closing, and we're moving faster than they are.

I get why some open source projects (e.g. bits of Rust) have moved to 
Discord out of pragmatism for having the smoothest possible UX to ensure 
the widest audience, but it comes at a cost. The main tradeoffs are:

  * As others have pointed out, Discord's monetisation model is that 
they own your data.  In Matrix, all participating servers share 
responsibility for conversations, and users can pick whichever server 
they happen to trust.  The ones we run as Matrix.org have these policies 
(https://github.com/vector-im/policies/tree/master/docs/matrix-org), but 
you can use whichever you like.  Additionally, Matrix is managed by the 
non-profit Matrix.org Foundation (https://matrix.org/foundation), to 
protect the protocol's users from conflicting commercial interests.

  * Discord locks you into a proprietary service.  It's the chat 
equivalent of using MSVC Express just because it happens to be free and 
glossy.  Discord explicitly forbids 3rd party clients and bridging, and 
you're not exactly going to have the freedom to tweak and extend the 
server - which is after all what open source is all about.  In contrast, 
https://matrix.org/docs/spec is the Spec we publish that forms the core 
of the Matrix protocol, and 
https://matrix.org/docs/projects/try-matrix-now/ is an overview of all 
the implementations (servers, clients, bots, bridges etc) of it.

  * Discord traps you in a proprietary silo.  You can talk to anyone you 
like... as long as they're on Discord.  If you want to collaborate 
directly with other projects on IRC, Slack, XMPP or wherever you're 
screwed.  Matrix provides increasingly decent bridges to IRC, Discord, 
Slack, etc so even if folks aren't natively on Matrix, you can talk to 
them anyway.  (And if LLVM does end up on Discord, we'll go ahead and 
bridge the Discord channels into Matrix anyway :P)

  * You don't have any end-to-end encryption.  If you ever found 
yourself discussing something sensitive (e.g. security vuln 
coordination) and don't want eavesdroppers in or around the server from 
following along, you're out of luck.  Matrix however implements 
Signal-style Double Ratchet as required.

I could go on, but I think the best datapoint I can think of is 
Mozilla's recent trial where they stood up Matrix/Riot, Slack, 
MatterMost & Rocket.chat side by side for a month-long comparison. 
(Discord was dismissed out of hand due to their dubious privacy 
policies).  They haven't announced the final winner yet, but you a 
sample of the feedback they gathered can be found at 
https://discourse.mozilla.org/t/synchronous-messaging-at-mozilla-trial-servers-feedback/44871. 
  And empirically, by the end of the trial, almost all the community 
chatter was happening on Matrix rather than the other instances, which 
were a bit dead (at least in the public channels).  It also spurred a 
*lot* of development - for instance, we went from having some of the 
worst accessibility to being one of the best, c.f. 
https://toot.cafe/@marcozehe/102998816933348357.

TL;DR: please don't pick a chat solution based purely on its current 
shininess and UX.  The FOSS options are evolving very rapidly (much more 
so than the Slacks & Discords), but we will only be able to grow if 
we're given the opportunity, rather than being dismissed due to being 
FOSS or "not mainstream" - much like LLVM in the early days needed 
champions to spur forward development.

Matthew

P.S. and even if some of Rust are lost on Discord, others ended up on 
Matrix, c.f. 
https://github.com/rust-embedded/wg/issues/357#issuecomment-504793602

-- 
Matthew Hodgson
Matrix.org


More information about the llvm-dev mailing list