Re: Thoughs about communication



On 13/01/2017 08:37, Alberto Fanjul Alonso wrote:

Hi, hackers

Do anybody though about trying new services for communication? 


I'm the project lead for Matrix, and thought it might be useful to list the pros & cons that we see with respect to Matrix for a community like GNOME:

Pros:
 * It's a neutral open standard HTTP API (https://matrix.org/docs/spec) with a bunch of different client, server, bot & bridge implementations of different maturity (http://matrix.org/docs/projects/try-matrix-now.html).  The API is super-easy and fun to hack on - sending & receiving messages is just PUTing or GETing some JSON from your server.
 * Matrix.org is a non-profit and everything is FOSS (Apache licensed); both servers, clients, SDKs, bots, bridges, etc. It's not a half-FOSS thing like Telegram.  I think we also have a pretty vibrant & friendly FOSS community going on :)
 * It's completely decentralised; you can run your own server and bridges to things like IRC, Gitter, Slack, XMPP etc.  Conversations are signed and replicated over all the participating servers in a manner very similar to Git; no single server or network owns the conversation (unlike MUCs or IRC).  You're not stuck in a silo like Signal etc.
 * Matrix isn't meant to be the One True Chat standard.  Instead it's just a lowest-common denominator decentralised pubsub network, and the bridges to things like IRC let people continue using whatever clients they prefer.  For instance, https://linux.conf.au/wiki/conference/chat/ shows how the LCA folks are using it to defragment their IRC & Slack communities (whilst also supporting native Matrix for those who want it).
 * Matrix provides E2E encryption for those who needs it.  It's still beta, but the core crypto has been publicly audited and is robust: https://matrix.org/blog/2016/11/21/matrixs-olm-end-to-end-encryption-security-assessment-released-and-implemented-cross-platform-on-riot-at-last/ etc.
 * Riot.im (the flagship Matrix client) is relatively polished, with native apps for iOS & Android; React app for Web, and Electron for desktop.  (As well as being packaged up as a proper Gnome app by aperez in the form of Revolt: https://github.com/aperezdc/revolt)
 * Supports zero-sign-up guest access (unlike Slack, Gitter, etc), letting folks jump straight into a room and start talking - e.g. https://riot.im/app/#/room/#riot:matrix.org
 * There are a bunch of good integrations & bots with things like Github, JIRA, Jenkins, Travis, etc.  In Riot these are exposed through a single-click appstore style UI, similar to Slack's.
 * There's a relatively advanced GTK/Vala SDK implementation at https://github.com/gergelypolonkai/matrix-glib-sdk.  This was written by the community with the intention of adding a Telepathy implementation of Matrix, but got stuck when it became obvious that Telepathy isn't in a great state for exposing Matrix's infinite-scrollback / sever-side-search / decentralised conversations architecture.

Cons:
 * E2E encryption is still in beta; specifically there are some races where decryption keys aren't correctly synced between participants, and we haven't finished implementing sharing history when new devices are added to a conversation, and we haven't finished the UX for key verification yet.   We're rushing to get it out of beta in time for https://fosdem.org/2017/schedule/event/encrypting_matrix/.
 * Riot has some irritating UX problems and quirks which make for a steeper the necessary learning curve.  These are being addressed currently: https://github.com/vector-im/riot-web/issues?q=milestone%3A%22UX+Fixes%22
 * Only one of the server implementations (synapse) is ready for production use currently, and is technically still in beta.
 * Synapse is written in Python/Twisted and is quite resource hungry (typically requires 2GB of RAM), although mem usage should improve significantly in the next few weeks.
 * While there are lots of clients, Riot is by far the most functional, making it a bit of a monoculture currently.  However we would *love* to see more clients, especially GTK ones!
 * By default Matrix logs everything (it's very much a conversation history syncing system).  The log visibility can however by configured per room - e.g. we turn it off by default for IRC bridged rooms.
 * https://solson.me/2016/10/08/irccloud-to-matrix.html has some other good critique.

Obviously I'm not remotely neutral, but hopefully this gives a few more datapoints to help make a decision :)  Feel free to come and bug me with questions on https://riot.im/app/#/room/#riot:matrix.org or https://riot.im/app/#/room/#matrix:matrix.org if desired.

Matthew

-- 
Matthew Hodgson
Matrix.org


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]