top | item 25334246

Gitter now speaks Matrix

443 points| Arathorn | 5 years ago |matrix.org | reply

114 comments

order
[+] the_duke|5 years ago|reply
That was impressively quick.

Looking forward to Github/Gitlab repository rooms and activity integration.

In the acquisition announcement they also mentioned threading though, which is the most important feature Element is missing for me.

Without it I'm very hesitant to use it in a professional setting.

I do hope that threads will look much more like Zulip rather than Slack (which is a mess), or offer different view modes. Zulips nested channel concept is a game changer.

(as I understand it, the protocol already has the required plumbing)

[+] Arathorn|5 years ago|reply
Matrix now has two flavours of threading defined and implemented as we experiment with the different approaches: label-based threading in MSC2326[1] (i.e. "filter this room to only show msgs tagged #foo"), and full-blown free-form HN/Reddit/NNTP/SMTP/Twitter style threading in MSC2836[2]. The former is closer to Zulip, and is implemented in Synapse. The latter is closer to HN, and is implemented in Dendrite[3][4].

Clientwise, Element supports neither so far, but we're experimenting with the HN-style threading in a dedicated playground called Cerulean[5]. The idea is to get it working well there, and then figure out how to merge it most effectively into Element. So: it's not ready yet, but it's getting tantalisingly close. We'll probably start hosting a demo version of Cerulean next week so folks can play along and see how it feels :)

[1] https://github.com/matrix-org/matrix-doc/blob/matthew/msc232...

[2] https://github.com/matrix-org/matrix-doc/blob/kegan/msc/thre...

[3] https://github.com/matrix-org/dendrite/pull/1589

[4] https://github.com/matrix-org/dendrite/pull/1596

[5] https://github.com/matrix-org/cerulean

[+] benatkin|5 years ago|reply
A lot of people, including me, dislike threading in Slack. It breaks the algorithm for reading new messages. I use it when teammates do, and acknowledge it's useful sometimes, but I would prefer not to have that feature.

Discord also does not have threads. I've heard some complaints about it, but not many.

Threads in Zulip seem to change it into a different kind of app. I don't see how the Slack workspaces that I've used heavily would work with it. There are about 15 channels in my sidebar. Making them nested would turn it into 75, assuming 5 threads per channel. Perhaps there wouldn't need to be as many top-level channels with Zulip threads, but it makes it into a whole different paradigm. They are also missing Slack-style threads. I don't think it would be good to adopt it.

[+] rkangel|5 years ago|reply
I actually think that the MS Teams implementation of threads is the best.

The problem with the Slack implementation is that it's not the default. You have to understand it to use it, and you have to have an organisational culture that pushes people to use it. Otherwise you end up only occasional threads, and mostly you're back in in the classic Slack '200 messages since you last visited, only 10 of them are of interest, but you have to read everything to find them' situation.

I like the Zulip version, it is automatically threaded but personally I had a slightly silly problem - you had to think of a topic name. It's a bit like the subject line of an email, except that you don't want it to be as long. This increases the friction slightly and you inevitably end up with a lot of messages going in one topic called something like 'general' when people can't think of a suitable topic name. I haven't used Zulip as intensively as the other two though, so maybe that problem goes away (or maybe it gets worse).

Teams is a lot like Zulip. Everything is in a thread automatically, but you don't have to name it, you just start a new 'conversation'. It works pretty organically, and it works by default without any 'culture' needed. You can give a thread a title if you want, but you don't have to. A bonus of the structure of Teams is that private messages (as supposed to Team channels) are just are a normal sequence of messages like Slack or anything else, because that's what you want. Teams is a memory hog and sluggish to use, but I do think they got that bit of the user experience right. Like many companies we had enforced, hurried massive increase in usage of Teams in March, and it has worked pretty seamlessly.

[+] StavrosK|5 years ago|reply
I'll second Zulip, though I think the message view and "zooming in/out" they implemented is just as much of a game changer as the threading model.
[+] ducktective|5 years ago|reply
Can you explain a bit more on "threading" and its relation to a chat service? And why Zulip's implementation is better?
[+] susam|5 years ago|reply
This is a great addition to Matrix. One of the things I really like about Matrix is how matrix.org has an IRC bridge that bridges all of Freenode. It is good to see Gitter getting bridged into Matrix too.

For example, if you want to join Freenode #lisp channel via Matrix, you can do so by joining #freenode_#lisp:matrix.org. Here is a direct Element web client URL to it, in case you want to try it now: https://app.element.io/#/room/#freenode_#lisp:matrix.org .

Element (previous known as Riot) web client is a great way to get started with Matrix without having to install anything. You have to create an account of course but after that it is pretty straightforward. The fact that all of Freenode (and now Gitter) is available on it makes it like one big IRC bouncer. Moreover, this is all distributed and decentralized!

Here is another safe Matrix room to try out and experiment with: https://app.element.io/#/room/#spxy:matrix.org . Most of us here are from Hacker News. We talk about computer science and mathematics here. Common Lisp and Emacs are being discussed these days. Say "hi" if you join it! :)

[+] Liskni_si|5 years ago|reply
Does the IRC bridge work reliably for you? I tried experimenting with Matrix today, I could make it to join #freenode_#xmonad:matrix.org but any message I sent didn't go through to the IRC side. When I then joined #irc:matrix.org it seems several other people were reporting this not working lately.

To make this experience even less amusing, I then tried to join #xmonad:matrix.org, assuming it's the matrix equivalent of #xmonad on freenode, but it just said I'm not invited and that was it.

Can't say I'm impressed. :-(

[+] throwaway894345|5 years ago|reply
Is there a good reason why we have a distributed platform for IM and other distributed platforms for e.g. social media (think Mastodon) that appear to work the same way except that the data types are different? Could this “distributed server atop HTTP/whatever” be abstracted out into its own protocol such that anyone could more easily build distributed applications for their own domain? Maybe there is more variation between domains than I am aware of?
[+] Arathorn|5 years ago|reply
ActivityPub, Matrix, XMPP and NNTP all do superficially similar things in very different ways. I personally think of ActivityPub as being a bit like multiplayer RSS; Matrix as being like a replicated pubsub open object database; XMPP like a overgenerously extensible messaging protocol; NNTP like a semi-closed federated BBS.

They all have different primitives and semantics - it’s not just data types. Matrix is the only one which actually implements a full data structure replication protocol between nodes, for instance.

Braid https://braid.news/ is one way you might be able to abstract thag operation on HTTP tho.

[+] dstaley|5 years ago|reply
I truly hope that Matrix+Gitter becomes the defacto standard when it comes to chat for open source communities. I think Discord is a bit ahead in terms of UX and features, but Matrix is catching up fast. I noticed that Element recently added support for Communities, which is sort of like a Discord server!
[+] Evidlo|5 years ago|reply
I think they may be called "spaces" now.
[+] doc_gunthrop|5 years ago|reply
If anyone on the Gitter/Matrix dev team is reading the post comments, here's a question for those who already use both platforms:

If I have an account on Matrix, but I also sign into Gitter with Github credentials, how would I go about merging the two accounts (without loss of data)?

[+] Arathorn|5 years ago|reply
We don't have account merging yet, as while Matrix can see all of Gitter, we're not exposing the entirety of Matrix into Gitter (mainly because it'd cause the Gitter AWS bill to go through the roof :P). Once Gitter becomes a pure Matrix client, though, you'll automatically be able to use your Gitter.im homeserver credentials to access Matrix, and with account portability (MSC2787[1]) there /may/ end up being a way to combine two existing accounts into one.
[+] TehCorwiz|5 years ago|reply
I don’t mind that being an option, but I would not want that happening automatically.
[+] sktrdie|5 years ago|reply
Can anyone explain what Matrix is and why is this interesting? Feels like we’re reinventing Jabber?
[+] zanny|5 years ago|reply
Jabber needed reinventing. XMPP grew and thrived in the early 2000s and died as every participant fragmented off to spin up a proprietary walled garden replacement. You then need something better than XMPP to fight back against that partitioning of the messaging space because XMPP implementations became too fragmented in feature compatibility to reliably compete.
[+] 3r8riacz|5 years ago|reply
A simple thing won me over XMPP to Matrix: .well-known domain delegation to use @asd:example.com as username instead of @asd:some.subdomain.example.com while being able to use the subdomain cert for the server instead of the parent domain cert. XMPP only supported SRV delegation which required the parent cert on the virtual (sub)domain.
[+] random9763|5 years ago|reply
It's totally different because it is a message syncing http+json API and totally not a messaging and presence protocol based on XML. /joke

It is interesting because Matrix has money thus full-time developers, marketing, exposure, and time to defend their work to the depth of the deepest reddit thread.

(The Element page on F-Droid reads "Element is able to do all this because it operates on Matrix - the standard for open, decentralised communication.", not presumptuous at all)

[+] JD557|5 years ago|reply
Hi there.

I'm completely new to Matrix, so sorry if this is a stupid question, but is there something like a gitter homeserver where I can login with my gitter credentials?

If so, what homeserver URL should I use in element?

[+] Arathorn|5 years ago|reply
You can't use your Gitter creds to log into Matrix yet (although we're hoping to support Gitlab/Github/Twitter login for Matrix before Christmas).

Instead, just sign up for a Matrix account via Element or another Matrix client, and then you can look at the Gitter server's room directory at Gitter.im and join its rooms from there. Because Matrix is one great big open network, you can pick any server for your account; you don't have to use the Gitter one :)

[+] tomelliott|5 years ago|reply
This is really exciting! Congrats Arathorn and the rest of the Matrix team
[+] Vinnl|5 years ago|reply
Great news! Very quickly done, which kind-of makes me suspicious... One thing I did already observe is that I was able to send a message to a closed Gitter room via my Matrix account, although I couldn't see other people's messages.
[+] MadLittleMods|5 years ago|reply
Thanks for the heads-up! Working on a fix so you can't query a private room and send in Matrix events. We already block from Gitter -> Matrix side.
[+] haolez|5 years ago|reply
"In the medium/long term, it’s simply not going to be efficient for the combined Element/Gitter team to split our efforts maintaining two high-profile Matrix clients. Our plan is instead to merge Gitter’s features into Element (or next generations of Element) itself and then - if and only if Element has achieved parity with Gitter - we expect to upgrade the deployment on gitter.im to a Gitter-customised version of Element. The inevitable side-effect is that we’ll be adding new features to Element rather than Gitter going forwards."

It seems that Gitter will be shelved after a while.

[+] Arathorn|5 years ago|reply
To be 100% clear: we are not going to shelve the Gitter codebase until Element (or other Matrix clients) have total parity with it. And once we do, we'll replace the current Gitter codebase with a Gitter-branded version of Element, and make sure it's configured so all the Gittery stuff works as you'd expect... while also benefiting from all the work we're pouring into Matrix and Element. So, I'd see it more like Gitter sprouting E2EE, VoIP, widgets, reactions, video conferencing, open standard API, etc, rather than "gitter being shelved" :D
[+] toyg|5 years ago|reply
As long as the actual system still does what Gitter does (i.e. provide a quick way to have project-related chatrooms), I don’t think anyone will care what it’s powered by.
[+] lftherios|5 years ago|reply
decentralized protocols will win :)
[+] sandGorgon|5 years ago|reply
oh this is huge. and right in time for the slack acquisition !

gitter fixes one of the biggest issues with matrix - the product/ux/ui.

one thing im not sure of is the conscious decision to deprecate mobile apps and instead recommend mobile web. https://gitlab.com/gitterHQ/webapp/-/issues/2281

is that a strategic decision ? because this wont be a pleasant experience is potentially a massive blocker for any type of serious usage.

[+] Arathorn|5 years ago|reply
We're not recommending mobile web; rather than replacing the native Gitter mobile apps with the Gitter mobile webapp, we're instead recommending folks move to native Matrix mobile clients like Element (or mobile web Matrix clients like Hydrogen, if they prefer).
[+] smarx007|5 years ago|reply
Great news! How do I make it work? I just tried in our room https://gitter.im/OSLC/chat# and I still see the matrixbot. The post talks about how to connect another chat system to Matrix but there are no instructions for Gitter itself.

Edit: Okay, this is what should have been in the post: go to Explore rooms, and instead of choosing Gitter, select Add new server and type 'gitter.im'. Now you can find a room through a native integration.

[+] Stephen304|5 years ago|reply
This is amazing! Side note, there seems to be a typo "would be to have got Gitter".

Also, I'm curious what the plan is to reconcile Gitter's one room per repo model with Matrix's anybody-can-create-any-room - in the long term, is the plan to keep gitter.im rooms restricted to matching repos? Or (post gitter-skinned-element) will people eventually be able to create arbitrary rooms on the gitter homeserver?

[+] Arathorn|5 years ago|reply
> An alternative architecture would be to have got Gitter directly federating

This isn't exactly elegant English, but I think it's structurally correct. In US English you might say "gotten Gitter", i guess.

> Also, I'm curious what the plan is to reconcile Gitter's one room per repo model with Matrix's anybody-can-create-any-room

You can already create non-repo rooms in Gitter, so this one's already solved. For instance, I just created https://gitter.im/matrix-org/matthew-test (with no matching repo) :)

[+] kawfey|5 years ago|reply
The ecosystem of a multitude of various chat apps is daunting and confusing. I've been finding that I'm spending more time talking and thinking about chat programs rather than actually doing anything valuable. It's kind of like how ham radio operators almost exclusively talk about ham radio on ham radio (when not talking about weather and personal ailments, lol).
[+] Arathorn|5 years ago|reply
It's like all the people on the Web who sit there discussing how to make the Web better :D doesn't mean it's a bad thing.
[+] FloatArtifact|5 years ago|reply
This is very exciting. On the element client edits from gitter via the gitter bridge currently do not display very well. The bridge creates a new pseudo post when edits are made. Will these edits automatically be cleaned up in the history of a room in the future?
[+] ptman|5 years ago|reply
Previous history is probably not going to get rewritten. The ugly edits are sent by the old gitter bridge, the new gitter bridge can bridge edits properly.
[+] Ericson2314|5 years ago|reply
Good job! But I think I will loiter in the old bridge and new rooms on the Matrix side until the history is migrated. After that...yay!