9 ms·
Just about every week now there is a top story on HN about the disastrous state of interoperable messaging in the digital world. Every time it comes up, I implo
by Perceptes 10y ago
Just about every week now there is a top story on HN about the disastrous state of interoperable messaging in the digital world. Every time it comes up, I implore people to look into Matrix (https://matrix.org https://matrix.org), a system with an open specification that checks all the boxes in terms of features (not quite end-to-end encryption yet, but it's being worked on) and is not controlled by a company. I really hope to see it enter people's consciousness as one of the most serious contenders for messaging systems.
Matrix is very usable today via the Vector client (https://vector.im/ https://vector.im/). You can connect to the public server run by matrix.org, or you can run your own server that federates with all the others if you'd like to maintain ownership of your data. Matrix can also bridge to existing systems like IRC, so there isn't necessarily the need to convince your friends and family to "switch" with you. There are interoperable clients being developed for other operating systems including mobile platforms. Even with client support not all the way there yet, the spec and the system are more promising than anything else out there today.
If you're interested in Rust, you might also want to take a look at my project, Ruma (https://www.ruma.io/ https://www.ruma.io/), which is a Rust implementation of the Matrix system. It's in very early stages, so don't expect to use it at this point, but it's progressing steadily.
- amelius 10y agoWasn't open chat already solved by Jabber decades ago?
- cpach 10y agoMoxie Marlinspike recently published an interesting essay that adressed this question. ”XMPP is an example of a federated protocol that advertises itself as a ’living standard.’ Despite its capacity for protocol ’extensions,’ however, it's undeniable that XMPP still largely resembles a synchronous protocol with limited support for rich media, which can't realistically be deployed on mobile devices. If XMPP is so extensible, why haven't those extensions quickly brought it up to speed with the modern world? Like any federated protocol, extensions don't mean much unless everyone applies them, and that's an almost impossible task in a truly federated landscape. What we have instead is a complicated morass of XEPs that aren't consistently applied anywhere. The implications of that are severe, because someone's choice to use an XMPP client or server that doesn't support video or some other arbitrary feature doesn't only effect them, it effects everyone who tries to communicate with them. It creates a climate of uncertainty, never knowing whether things will work or not. In the consumer space, fractured client support is often worse than no client support at all, because consistency is incredibly important for creating a compelling user experience.” https://whispersystems.org/blog/the-ecosystem-is-moving/ https://whispersystems.org/blog/the-ecosystem-is-moving/
- Perceptes 10y agoI am hoping the Matrix team will write a blog post about their viewpoint on Moxie's post, given that they are out to do something Moxie doesn't believe can succeed. I'm also curious to hear how they respond to the specific section you quoted: how is Matrix going to avoid the same fate XMPP suffered here?
- Arathorn 10y agoWe haven't had a chance to write a formal response yet; too busy getting Matrix out of beta. I responded at the time at https://news.ycombinator.com/item?id=11669681 https://news.ycombinator.com/item?id=11669681 though. A quick specific answer w.r.t. XMPP is that Matrix aims for a very coarser granularity of modularity, published as a single consistent spec, and mandates feature profiles to determine which modules should get used where. In other words, there is only one official set of endpoints specified for Matrix for a given use case (e.g. mobile IM+VoIP). So it ends up being under tighter control (whilst still very much taking proposals and PRs from the overall community), and is easier to swap out the higher level layers to rapidly evolve functionality - rather than suffering the proliferation of XEPs which is XMPP's double-edged sword. This is always going to move slower than a centralised service, but we think the freedom of being able to select your clients/servers/services is well worth that cost in agility - and does not have to compromise privacy if engineered correctly.
- Perceptes 10y agoThanks for the response and the link to the previous response. I'd missed that! Both are great answers. :}
- drdaeman 10y ago> Like any federated protocol, extensions don't mean much unless everyone applies them, and that's an almost impossible task in a truly federated landscape. What we have instead is a complicated morass of XEPs that aren't consistently applied anywhere. The problem is, without actual numbers - how many clients support what - this statement is just a personal opinion, not a rule. We can say exactly the same about the web. It's also federated, it also has fractured client support (although, sadly, core engines can be counted on fingers) and it's also full of extensions. While I won't praise the web, and I'll surely admit that the trends for siloing are strong (for many, a single big social network site of their choice is the "web"), it still manages to provide somehow decent user experience.
- jitl 10y agoJabber/XMPP has a number of problems that make it unsuitable for modern chat environments where clients (read: smartphones) have poor connections and frequently want to sleep to conserve power. For example, XMPP wants an always-on TCP connection between the client and the server for the client to appear "online". There's an extension which allows for sleeping, but having async mobile connections in an extension means that you need the right pair of server and client to enable this feature. Plus, there's no handling of syncing messages between multiple clients. If you've got a smartphone and a desktop client, to compete with Facebook Messenger you need detailed conversation transcripts on both clients -- and an intelligent way to ping your clients and tell which should receive sound notifications. see more at https://op-co.de/blog/posts/mobile_xmpp_in_2014/ https://op-co.de/blog/posts/mobile_xmpp_in_2014/
- Zash 10y agoEmphasis on in 2014, that was forever ago in Internet time. XMPP is steadily moving forward and the things mentioned in that post have improved a lot. Check out https://conversations.im/ https://conversations.im/ for example.
- digi_owl 10y agoThat was not only XMPPs problem. It is what sunk most of the desktop IM systems, making way for the mobile ones.
- XorNot 10y agoJabber doesn't do offline messaging well at all, nor push particularly well (not out of the box, so to speak). The "standard library" of messaging has expanded a lot lately.
- frigo_1337 10y agoI really like the ideas behind Matrix. Sure, the existing (open) clients aren't all that sexy, and synapse can be a bit slow sometimes. But implementing your own client is a breeze and bridging other networks through application services makes it incredibly powerful. My experience with the matrix.org community has been very pleasant so far. Keep up the good work, folks!
- weisser 10y ago> a system with an open specification that checks all the boxes in terms of features (not quite end-to-end encryption yet, but it's being worked on) and is not controlled by a company Half of the people reading tune out very quickly around this point. Most people want something that solves 80% of their problems with 20% reduction in headaches.
- zanny 10y agoThe only major problem I still have with Vector is that despite Matrix the protocol specifying ways to register and authenticate accounts using various web apis like oauth[1] Vector is always pushed as the premium Matrix webclient but it doesn't support anything but username / password. You would be amazed how many people simply refuse to create new username / password pairs in 2016. And its a good thing. We should be past username / password. Support oauth2, openid connect, and for the privacy minded... keep complaining to Mozilla that they shutdown Persona. http://matrix.org/docs/spec/r0.0.1/client_server.html#oauth2-based http://matrix.org/docs/spec/r0.0.1/client_server.html#oauth2...
- Arathorn 10y agoActually, Vector does support alternative auth mechanisms (although it's quite buried) - it implements the web fallback mechanism, both on web, iOS & Android, such that any unrecognised auth mechanisms can be handled by whatever webpage fragment hosted by the server, as per: https://matrix.org/docs/spec/r0.0.1/client_server.html#fallback https://matrix.org/docs/spec/r0.0.1/client_server.html#fallb... For instance, we have a workplace deployment of Vector knocking around that uses CAS for auth, and the whole CAS flow is handled by the fallback mechanism. (This CAS happens to be user/pass, but it could easily be 2FA or whatever instead). That said, it's still beta, and not super-documented.
- Freak_NL 10y agoI have no qualms about OpenID Connect itself — it is a sound standard, using JSON Web Tokens is a particularly nice feature — but I dislike encouraging users to identify themselves for every service they use with Facebook or Google accounts. Way too much information about your digital life centralised with a single commercial party. I'd much rather see the use of password managers become more common, or even better, stimulate user-friendly two-factor authentication standards such as FIDO U2F.
- nnain 10y agoThis is cool. But IMHO the point of the article is about Google losing its first-mover advantage in chat apps due to wrong branding and prediction for GChat, not interoperability.
- Perceptes 10y agoTrue. My comment is not a response to the particulars of this article, but more about the area of software of which GChat was a member. Apologies for turning it into my own soapbox.
- dba7dba 10y agoI force my friends to use Gchat when the chat is turning into long conversation and I want to type on my PC keyboard instead of my cell. But I'm not sad Google missed out with Gchat. One less product Google dominates with means some other company can innovate in that area and compete.
- hughes 10y ago"Decentralized persistent communication", as long as you either use a centralized homeserver you don't control, or run a hugely resource-hungry and crash-prone homeserver yourself. I tried running my own for a few months, and resource demands for even a single user in a few moderately popular channels brought down my small ec2 instance. Eventually I had to shut it down, but now I've lost my ability to authenticate as the user I identified as during that time, until I set up my homeserver again.
- Arathorn 10y agoYup. the Synapse server implementation is still beta, and we are working away on the performance issues (yay, Python/Twisted). In the last few months we've reduced the memory footprint by about 2-3x (by string interning, better caching, and letting the cache size be configurable). The only stability issue we're aware of currently is the risk of being OOMed on small VPSes. That said, we're really hoping that having almost finished fleshing out the whole ecosystem now, the future will be much tighter and svelter homeservers like Perceptes' ruma implementation.
- Perceptes 10y agoFor anyone else reading, it's worth noting that these issues are with Synapse, the "reference implementation" homeserver built by the team developing the Matrix spec. Performance issues are a focus for its development now. There are also other projects (like my project Ruma) that provide alternative implementations that won't necessarily have these performance issues (hopefully!) The nice part about having a spec is that anyone has the opportunity to provide a superior implementation.
- hughes 10y agoThat's interesting, I'll check it out!
- voltagex_ 10y agoI really really like the ideas of Matrix, but the problem is none of my friends are on it. I had the same problem when I started to use Signal. WhatsApp actually seems like the lesser of two evils right now - even though it's controlled by Facebook, they've added encryption and some of my friends are on it. Who'd have thought we'd look back on the days of MSN, AIM and ICQ as the golden age of interoperable messaging? At least I could talk to everyone I needed to through Gaim (Pidgin) or Trillian.
- Certhas 10y agoI have had some success with getting people on signal, though now that Whatsapp is encrypted by the same technology there doesn't seem to be a big benefit anymore. Generally it seems to me people are not so adverse to having several messanging sollutions installed these days.
- codemac 10y ago> I really really like the ideas of Matrix, but the problem is none of my friends are on it. Build a whatsapp bridge for matrix? I mean, it's built for the exact case where people aren't "on" it.
- Arathorn 10y agoPrecisely. There's already the beginnings of a WhatsApp bridge for Matrix (and indeed anything that libpurple can speak) at https://github.com/matrix-org/node-purple/tree/master/appservice https://github.com/matrix-org/node-purple/tree/master/appser.... It just needs tuits for people to work on and finish off. Meanwhile, the IRC & Slack bridges are live and work relatively well today (although a lot more work still to be done).
- reitanqild 10y agoThe problem is Whatsapp is actively hostile to any kind of attempts to creating 3rd party clients or APIs.
- thaumasiotes 10y ago
- insane_dreamer 10y agoProblem is the greatest system in the world is useless unless a quorum of people in your circle are using it. I've been trying to get my friends to use Wire for a year but still have to run skype
- Perceptes 10y agoThat's where bridging with other services comes in, e.g. using Matrix on your side to talk to contacts on IRC or whatever else without the people on the other side having to change what system or software they use.
- Karunamon 10y agoDoes this require control of the server being bridged to implement, or could I do something like, say, set up an instance that lets me be on both Rizon and Freenode at the same time on one client connection?
- Perceptes 10y agoMy understanding is that bridges are implemented via application services (the Matrix term for privileged plugins that extend the capability of the server,) so a user's ability to communicate over non-Matrix protocols is dependent on the homeserver where their user account is based. The best known example of this is that the public matrix.org homeserver is bridged to the Freenode IRC network, and certain channels are synced to each other, e.g. (#matrix on Freenode is the same thing as #matrix:matrix.org on matrix.org.) I'm not sure how this works for non-public communication, like private messages on IRC or services like Facebook where it wouldn't be safe for the Matrix homeserver to have access to a user's Facebook account. At this point I'm not super well-versed on the details of application services so hopefully one of the Matrix team members will reply to you directly.
- Arathorn 10y agoIt generally doesn't require input from the target network being bridged, unless you're running a large public bridge like the ones we host on matrix.org. You do however currently have to run your own homeserver in order to run your own bridge (although in future we're looking at ways of getting around this for 'personal' bridging purposes). If you run your own homeserver, and your own bridge to Rhizome/wherever, you can think of the end result being a bit like bitlbee or a pidgin-in-the-cloud... but decentralised, and with the richness of Matrix's conversation semantics (e.g. arbitrary data types) rather than being limited to IRC.
- skykooler 10y agoMatrix looks interesting. But, damn, that animation on the homepage slows my browser to a crawl!
- calanya 10y agoI have a computer which is always on and always connected. It's my smartphone. Can I just run a 'homeserver' on that and be connected?
- kuschku 10y agoIf you are on Android or iOS, it’s not always connected – and you can’t actually run things in background all the time anymore either.
- Perceptes 10y agoSure. Homeserver software doesn't care where it's hosted. If you want it to federate with other homeservers on the Internet, it will need to be accessible from outside your local network, of course.
- calanya 10y agoIs anyone working on it that I could help?
- Perceptes 10y agoI'm not sure exactly what you're asking. The only practically usable homeserver software right now is Synapse (https://github.com/matrix-org/synapse https://github.com/matrix-org/synapse), an implementation in Python built by the Matrix core developer team.
- Arathorn 10y agoSynapse only runs serverside. In future we'd love to evolve things to be able to run clientside - e.g. our P2P Matrix GSoC project: https://github.com/matrix-org/GSoC/blob/master/IDEAS.md#peer-to-peer-matrix https://github.com/matrix-org/GSoC/blob/master/IDEAS.md#peer...
- PeterisP 10y agoSo, why did you answer "Sure" to his question if the answer is actually "No, you can not run a homeserver right now on your smartphone" ? I mean, a python app for posix systems is not really close to being run on unrooted android and iOS.
- LoSboccacc 10y agoWe had jabber for a decade at least. The battle for messaging market share doesn't seem technological. Heck you even had the option to federate private servers so one could address users across hosts.
- sparkie 10y agoBut Jabber was XML based. Matrix is JSON Based! If only we would've chosen the right technology, people would've used it. https://xmpp.org/extensions/xep-0295.html https://xmpp.org/extensions/xep-0295.html
- LeoPanthera 10y agoedit: it's a joke. I'm an idiot.
- fucking_tragedy 10y agoIf you believe that's the point the OP was making, you did not click the link in the post you're replying to.
- LeoPanthera 10y agoEdit: still an idiot.
- fucking_tragedy 10y agoPlease read, comprehend and then post. From the page you didn't read that was linked in the OP: > NOTICE: This document is Humorous. It MAY provide amusement but SHOULD NOT be taken seriously.
- deleted 10y ago[deleted]
- Kiro 10y agoYou're missing the sarcasm.
- Bromskloss 10y agoHaha! I just tried Vector on iOS and apparently moved about in such a way that I accidentally triggered the greatest notification message: > You seem to be shaking the phone in frustration. Would you like to submit a bug report?
- marvy 10y agoWow. I am truly impressed.
- matthewmacleod 10y agoI've seen this UI in other apps, and I absolutely fucking hate it. Google Maps was a particularly egregious offender, where rotating the device or calibrating the compass would prompt for feedback, usually in the middle of trying to use a map. And who shakes a device in annoyance anyway?!
- StephenConnell 10y agoNo kidding. Especially annoying when using Google Maps and driving a stick shift.
- drewm1980 10y agoThe stick shift gesture should notify the police of your location and destination.
- untog 10y ago
- gcr 10y agoHow is the feature set any different than XMPP?
- Perceptes 10y agoThey have a good explanation of how Matrix compares to XMPP in their FAQ: https://matrix.org/docs/guides/faq.html#what-is-the-difference-between-matrix-and-xmpp https://matrix.org/docs/guides/faq.html#what-is-the-differen...