[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