On 13/01/2017 08:37, Alberto Fanjul Alonso wrote:
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 |