Hacker News new | past | comments | ask | show | jobs | submit login
Element Matrix Services Launches Bridging for Microsoft Teams (element.io)
199 points by anotherevan on April 15, 2021 | hide | past | favorite | 88 comments



Recently had to start using MS Teams at work. What a terrible UX: truncated message widths, even for code. No syntax highlighting, markdown-ish syntax only works when you type it in their little editor—when you paste it in it doesn't format, isn't smart enough to auto-start a new message when I start typing, hides bottom of message—even when there's only one line left, etc. Just a bunch of little stupid things that add up to one, in the immortal words of Strong Bad, suckquake of a user experience.

In short, I would have loved to have the option of using Element to chat with my team instead of MS Teams. Thank you for making this!


There's also the lag. Basically every action in the interface needs to redraw everything... slowly.

There's a noticeable reaction time between clicking on a person's image in the left bar and the screen being updated. Even when going back and forth between two contacts, even with 64 GB of RAM, so you'd think they'd cache it somehow.

Sometimes when scrolling up in the chat, it goes back down then continues scrolling up (even when the contact is offline, so nothing changes the history).

Even the buttons on the left side (activity / chat / teams / etc) lag when the mouse just passes on top of them.

Also for some reason there are regular CPU spikes (on the order of 20% of an 8th gen desktop i5) even when I'm not actively using it.

I find it so stupid that this same computer can run fairly new games at 4K resolution with all settings at the max and nearly 60 FPS, but it somehow struggles to update a chat application.


If you think the lag in teams is bad try using slack, especially on a lower-end laptop! Used to be relatively snappy 4-5 years ago and I swear it gets slower with every update now.


I hate search in Teams. It is the worst I've seen in a chat app.

The search result will only show you the single message it matched but not all the other messages around it! The only option is literally scrolling up but the performance just degrades as you go further back.

Like I can tolerate a lot but damn. That always frustrates me to no end.


Search in teams is completely useless. Slow, no easy way to filter/organize results, and scrolling is the only way you can go through results with extremely slow load times. It's a joke.


I find that the upside of having switched from Slack to Teams is that Teams is so astonishingly terrible that I find myself not getting stuck all day in it like I used to in Slack. With Teams I get in and get out. My colleagues do the same so I get ~10 Teams messages a day, while my wife in Slack gets hundreds. It’s the perfect example of “it’s not a bug, it’s a feature.”


The markdown formatting doesn't even work consistently. Some days things show up bold, some days they don't, some days I get inline code, some days I don't. It's very random and seems to be based on my typing speed at the time. That is, type ` and then wait a moment before typing the next bit and it works more reliably, but if I type like normal (around 100 wpm) it rarely registers properly.


I'm now in the habit of typing the opening backtick, ctrl+shift+v to paste some line of code, then having to WAIT a second or 2 and then type the second backtick. That usually formats it correctly. But I'm also very quick on the backspace and retyping the closing backtick, which is sometimes necessary.

Starting a new chat with someone in your organisation that you haven't chatted to is also annoyingly slow. This one I keep forgetting. So I search their name in the search bar, choose the hit from the dropdown and immediately start typing, only to notice that my initials 10 keystrokes didn't register, because the new chat was still initialising.

I'm curious, do you touch type? I'm also at about 100wpm, but only thanks to learning to touch type.


Yes! What is with that inline code thing? The only time single backticks seem to work is when I don't want them to.


Microsoft Teams

Cons: slow, consumes lot of memory plus all of the above

Pros: not as buggy as Skype for Business


My $employer is still on skype for business. I usually liken the choice between SkypeFB and teams between having a broken leg (Skype) or a stubbed toe (teams).

Of course given this binary choice I would prefer a stubbed toe, but can we just move to something that is actually pleasant? Thanks!

Given this bridge moving to element seems like a no-brainer for anyone on teams.


that's exactly my thought, despite all the suckiness, the experience is still better than skype for business


The customer group for teams seems to be used to the likes of Cisco Webex, Skype for Business, Lync and similar crap. Compared to those, Teams is a step up.


The markdown formatting renders differently in the desktop client depending on whether you are in the main application window or a popped-out chat window...

Which are both different than the formatting that the browser version of Teams shows.


And the backstick only works if you start by the left one.


If you want to get partially read of the Teams UX / UI, check my project. I'm working on providing a Teams library and a Teams CLI:

https://github.com/fossteams/teams-cli


Yeah, it's astonishing how bad Teams is.


On code blocks, you can have syntax highlighting. However, inserting them is a pain and you have to manually select the language.

Ich course, everything still sucks, yes.


And to add to the list: there is no way to reply to a message, although they have this implemented in the mobile client for ages.


This. Seems they will never fix it.


Sometimes messages are displayed out of order, or not at all untill you restart the app. Scrolling up unloads the bottom messages so you can copy. It's impossible to quickly go back to look at a conversation last week, the API throttles you from seeing your own discussion. Opening the camera from the android app frequently crashes


I cannot for the love of life even figure out how to make a simple group chat with a couple of people without creating a calendar entry, even less with external users.


There is syntax highlighting, just takes a few clicks as it's hidden in a sub-menu ("code snippet").


It's interesting how Microsoft both showcases a really bad example of a JS hybrid application (Teams) and the more rare good example of it (VS Code).

These guys should have talked sometime I hoped.


> These guys should have talked sometime I hoped.

Hah.

DevDiv never talks to the Office org. For one thing, they’re on opposite sides of the campus; secondarily (and most disappointingly) the golden-age of Office/VS integration ended by Office 2007 when it was clear the VB6-derived VBA editor in VS was frozen on ice (and remember the InterDev-derived Script Debugger in Office 2003?).

For the past 14+ years, the Office org built up their own UI/UX framework completely separate from both OSG/Windows and DevDiv/VS/etc: that “DirectUI” stuff. It has a lot of potential (and room for improvement...) but instead we get exports like WinUI 3.0, aka “We won’t let XAML die, but we won’t invest in tooling or making it not horribly verbose despite the fact it’s now 15 years old”.

I don’t understand why Microsoft seemingly wilfully abandoned any semblance of a roadmap or reasonable guidance for the Windows desktop dev story. It’s insane because Office+VBA+VB6 is the reason people still buy Windows licenses even though 75% of people have no other reason to be bound to Windows.


Thanks for the insights. I would like to hang around for a few months at Microsoft just to see how such a big organisation (dis)functions.

I really enjoy using MS tools for development, always had as I discovered C64 BASIC was made by them and I was a C# developer for about ten years (if I'm allowed to forget about WebForms). All of the other stuff I don't really care about anymore. I'm fine using Numbers and Pages or LibreOffice and macOS replaces Windows since I'm not a gamer and not doing any non-cross platform C# / F# development anymore.


> I would like to hang around for a few months at Microsoft just to see how such a big organisation (dis)functions.

Put in a job application. The company has always been hiring. Judging by the fact they employed me right after uni I guess they’ll hire anyone who can explain mergesort on a whiteboard.

———

I believe we’re witnessing the slow death of Windows into irrelevance, the same way mainframes and minicomputers aren’t relevant today, the way most “apps” for business are just public web-apps or Electron distros - Windows is just another fungible host for Chrome.exe.


I think another reason that the VBA editor is frozen in ice is because Microsoft doesn't really want you to build stuff in VBA/VB6 anymore.

VBA doesn't play well with the multi-user and cloud-based push that Microsoft has been trying to go for.


Can't someone from the top force the office people to use code libraries?


Microsoft made an announcement recently that the next major version of Office Access will use the Monaco editor for the SQL editor (with auto-complete and intellisense) instead of the horribly broken black+white editor presently in Access.

Their choice of Monaco is interesting because it's a HTML+JS-based editor - this hints that Access might be transitioning its entire UI over to HTML+CSS+JS - this might be a good thing - or it might be a very bad thing.


Thats awesome. They seem to be doing a great job of building out a business on top of an open protocol. Slowly but surely their apps are also getting better.


Does Matrix have decent mod features yet? I want to take people off Discord, but user-friendly role creation/assignment, moderation tools, and granular permissions are a must before that'll be possible.


I agree mod tools with matrix/synapse/element need major expansion, it's my major thing with it.

BUT I was able to create a couple moderators level 50 for several rooms and admins level 100 for several - with a click tap once I got the basic syanapse/element running on a vps. So some moderation is working out of the box mostly okay.

When I read about the mod-bot that creates a mod room where you can pop in there and tell the bot to 'Do X to user Y in room Z' - well when I read it the third time I started to get how great that is - but I have not gotten to install that part yet - I got stuck on the sticker pack addon not working..

cuz my 2021 install of debian 9 on Digital Ocean had an issue with ssl or some crap - I've got about 20 hours into trying to fix and basically given up (I did find a python support thread that offered a (temp?-) fix by rolling back the TLS version - but pass) - probably going to do a new install on a newer box/debian with latest python and try again. Which probably means a diff domain name and all that - and then I don't think there is a way to port my usernames/email addy of users to the newer install.. so I'm stuck.

There's at least one more addon package for moderating that I have not gotten to that adds like a backened admin page kind of thing I think.

I've made some suggestions for moderation enhancements in the element and synapse chat rooms - but what is getting prioritized by the core team has other things on the road map last I checked.

I'll likely make some blog posts about my suggestions I guess to keep a running list of moderation addons / needs. Someone pointed me to some vote up page for feature requests, maybe it was on github? but I don't do that system yet. My plan was going to be to offer the makers of the admin-page addons some cash to add some features - or find someone via toptal / upwork to write some code and submit to the team for code review maybe.

I think we'll see more moderation tooling sooner than later, I certainly need some more options in that area.


I haven't tried, but it seems to! The table of contents seems quite broad.

https://matrix.org/docs/guides/moderation


Matrix is a protocol, Discord is a system. For want of better terms. Perhaps you could compare git with Github or Gitlab. Matrix might be able to fulfil your requirements but you don't state them.

Why not start with: "I need a communication system for my organisation that satisfies the following criteria and I accept that there is no ideal and I am willing to reform my requirements as I evaluate the options available"

  * End to end encrypted
    * Check up on governance: Local requirements
  * Media
    * Text
    * Voice
    * Video (plus voice)
  * Supports emoji
etc, etc.

What do you really want and are you prepared to put some real work in to actually evaluate some possibilities? If not, then stick with Discord. It probably won't kick your kitten but it now belongs to Microsoft who also own LinkedIn and sadly themselves.


I've evaluated Rocket Chat, Mattermost, Zulip, and Element+Synapse at various points over the last year and a half. That included compilation and deployment on AWS instances. I've done leg-work.

Matrix's official server and client are often touted as a competitor to other team and community-oriented chat platforms by its proponents. As a signal competitor it's solid enough, but in the community space it fails to be competitive.

I'm really hoping to see Matrix mature more, and codify moderation apis in order to keep the protocol client/server agnostic for all standard use-cases.

The Matrix documentation itself admits that the community-management portion of the standard is underspecified.

https://matrix.org/docs/guides/moderation/#removing-users-ro...


This is potential huge. I hope it works more seamlessly than the Element/IRC bridge, which is a hot pile of garbage and almost got me kicked off an IRC channel due to the formatting issues that the Element bridge introduces. Best of luck to them!


Meh.

While bridging to IRC does make you a guest, the amount of hand-wringing IRC people do about differences in formatting always felt disproportionate to me, especially in that IRC doesn't actually have an officially sanctioned experience. It's fine to DM a password to a Nickserv and set esoteric channel modes, but apparently looking bad to irssi/erc/BitchX/WeeChat users is a big no.

The long message -> file behavior is a bit silly and understandably annoying, especially in a help channel, but the amount of complaints I've seen of people not following <my-IRC-client-of-choice>'s highlight pattern is just silly. People get uppity because you appended the IRC network's friendly name in parens to their actual name? Oh no!


Aye, my condolances to anyone on Teams who will have to deal with annoying Matrix users. Their client has been a major nuisance to IRC.


I have no sympathy for any IT department that enforces Teams upon its peers.


Have you got more details on this? Why do you think matrix users are annoying on IRC bridges?


If a matrix user tries to write something too long for matrix+bridge to handle it will instead just paste a link to a website that shows the users text. Only the link to this web text clip will be sent to IRC.

If a matrix user responds to someone their matrix client + bridge will inline copy the previous lines and send it to IRC with their response.

Basically, the matrix bridge is extremely spammy even with normal behaviors. The sane thing would be to just break up the message into to parts and send it. The sane thing would be to assume anyone looking at IRC already knows what comment they are responding to and there's no reason to re-post it inline.

There are more annoyances but those are what come immediately to mind.


Afaik there is an option to break messages into multiple parts but it's not enabled by default because it breaks sending code samples


Yeah honestly I prefer the "automatic pastebin" behaviour, because the alternative is that walls of pasted text end up destroying channels. The Matrix bridge is mostly just doing what we ask regular IRC users to do; viz., use a pastebin for large content.


Are these behaviors set in stone, or might the Matrix-IRC bridge be changed?


It looks like they could be fixed as the bridge code is open source. For example here is an issue around messages being split incorrectly: https://github.com/matrix-org/matrix-appservice-irc/issues/1...


I've used the Matrix bridge to IRC a lot, and no one has complained. Of course, one has to remember to never use edit messages, or use the reply feature.

Ideally, these functions should not be available when connected to an IRC channel.


I'll post it here in the hope of getting more project exposure: I'm working on a Teams library and Teams CLI written in Go and I'm looking for contributors.

Feel free to check out the project, together we can solve this Teams problem!

https://github.com/fossteams/teams-cli


This definitely looks great!


What’s the tech behind this? Have they worked with Microsoft to implement this? Does Microsoft offer some something that enables these kind of bridges?


It has been independently implemented using the Teams GraphQL API.


Will this bridge be be open source?


No

> The bridge itself is not going to drop into the open-source Matrix code any time soon. Hodgson explained: "This is an entirely new bridge that we've built as Element exclusively for Element Matrix Services, which is the SaaS hosting platform we provide in order to keep the lights on for Matrix development and for Element in general.

> "We are taking the position that people who are rich enough to buy into Team's ecosystem and throw lots of money to Microsoft might as well throw a little bit of money to Element to keep funding Matrix development."


Oh man, what an unfortunate view. As a user, I wanted the freedom to set this thing up so I could have a teams client that doesn't use 100% of my CPU at idle, but of course I am an end user at my company. It doesn't matter how deep my personal pockets are, I'm not able to make a company-wide decision. It's impossible for me to pay them for this, even if I wanted to.


Interesting, I hadn't appreciated that Matrix was switching from fully open source to an open core model.


I think that's a mischaracterization of what's happening.

Matrix the protocol is fully open source. Element the matrix client is fully open source. Synapse the matrix server is fully open source. Dendrite, the next generation matrix server, is fully open source.

All of these are developed by the New Vector team. The only thing here that isn't open source is an external bridge to microsoft teams, a platform that itself is already closed source.

In this case, "open core" would probably look like the Matrix team closing the Element client and Dendrite homeserver, and then extending them with closed matrix event types.

Honestly, they could probably pull it off, but I doubt they want to go that route. They've been dedicated to federation since the beginning.


Yeah, "Open core" doesn't have a great definition. Certainly I agree this is a pretty contained feature, and I shouldn't have written "switching ... to an open core model" given the evidence in this thread.

But "Element Matrix Services" (aka New Vector) launching and marketing a product/feature that is not open source is AFAIK something new, and it'd be very surprising if this is the last such feature they announce.

(Before today, they were one of the very few examples I knew of a VC-funded open source company where their product remained entirely open source.)


This is definitely an "open core" business model and you were right to call it what it is. While right now, the "core" is still fairly large and the proprietary addons are fairly small, it is not hard to see New Vector making more features proprietary additions.


This may be a matter of definitions, but I really don't think that it's correct to describe this as open core.

First of all, Matrix itself is a non-profit foundation, and absolutely everything it does is FOSS, and accepts contributions from everywhere. The majority come from Element (formerly New Vector) though, the for-profit that the original Matrix team set up in order to work on Matrix full time.

Element has always had some closed-source bits in addition to all the FOSS work we do for Matrix. For instance, the EMS hosting platform itself (lots of stripe + kubernetes) is all proprietary and always has been. The default integration manager (codenamed Scalar) is too. And occasionally we've built random apps and bots and bridges which we chose to keep closed source - e.g. we've had a closed-source Sametime bridge for ages, and we have closed-source border gateways, cross-domain controllers, audit bots, etc too. However, *this doesn't make Matrix open core*, any more than the existence of closed-source webapps makes the Web "open core". It also doesn't make Element "open core", any more than (say) Mozilla is "open core" just because they haven't released the source for some of the random services they run too.

In an ideal world, Element would release all of its IP as FOSS - and it's quite possible that we'll do that in future. But right now we're still experimenting with the right balance.


You changed the name of the company to match the renamed client? Besides the weird use of a nonprofit to distract from your for profit business, for unknown reasons since there's nothing shameful about making profit to support your endeavors, your business has the absolute worst and most confusing branding I've ever encountered.

Matrix was never a great name, and confuses people. Riot was named after violence, but Element sounds like nothing, and now you've introduced a namespace collision for no good reason between the renamed product and the company.

What's next, rename Synapse to Element Server and Matrix to The Element Protocol?

It's like you want to lose


I feel flattered that you registered a throwaway just to rant about the horror of a company who shares the same name as their product :D (c.f. Slack, Mattermost, Rocket.chat, Zulip, Airtable, Figma, Sketch... in fact, it's hard to think of a company outside old school megacorps like Microsoft and Adobe who don't name their company and product the same thing!)


I'm not sure if I would go so far as to say this is an open core model. This is more like someone developing a proprietary WordPress plug-in, but WordPress itself is completely FOSS.


Similar to how vscode is open source but all the important extensions (remote dev, CPP, Python,new Python LSP) are all closed source?

I would call that open core.


I didn't really think about it like that, though i guess accurate. Matrix, the spec is open, and synapse the server is open. anyone can make a bridge, they are pluggable, and the author can choose their license. I guess you could call Matrix+spec the core.


> "We are taking the position that people who are rich enough to buy into Team's ecosystem and throw lots of money to Microsoft might as well throw a little bit of money to Element to keep funding Matrix development."

This is a mistake. If they're already paying for Teams, then what exactly is the incentive to "throw a little bit of money to Element"? They aleady have a communications tool (Teams), so a) why are they going to pay for another one, and b) people who already bought Teams most likely do not care about the values Matrix stands for.


Can’t fault them for it, but it does feel a touch petty — falling below the high standard that Matrix has implicitly led us to expect.


How so?


Why not open source this bridge too, like everything else in the Matrix ecosystem?


What good would that do?


It would remind the community that Freedom(R) is very important. I think the least they could do is release it under the AGPLv3. That license is accepted by the Free Software community while being universally rejected by business as toxic and dangerous. No business will pick up the bridge and use it, while Free Software people can still use it for their own purposes (whatever those might be).


It's a bridge to a proprietary service. Free software adherents don't have MS Teams subscriptions, and those with MS Teams subscriptions aren't going to care about the bridge being proprietary.


There are people who might have to use Teams due to network effect, but prefer to keep closed source crap off their machines. Such people like myself might use Reddit (closed source for some time now), but use open source app like Slide or plain old Firefox.

For such people, an open source element bridge to teams is best of both worlds.


It’s a matter of principle, more than anything else.


There needs to be a nice link to a nice document explaining how to run a client/server and how to add bridges to it. I tried before and it seemed like WIP.


Pretty straight forward:

https://matrix.org/docs/guides/installing-synapse

Took me a couple hours as a a non-infra guy.


Does it work for videoconferencing?

Edit: yes

> Microsoft Teams Bridging supports both group and individual messaging, as well as voice and video conferences.


I still see absolutely no benefit in using Matrix compared to other open source options. The only thing they have going for them is they sure spend a lot of money on marketing and PR.


I don't think new features are meant to be the attraction, at least not yet.

They seem to want it to become the next email, but for online messaging, voice, video, presence etc. To be an address on business cards. None of those things are new but marketing, a catchy name and a clean start will all help to get wide adoption beyond the tech types.

Necessary but not sufficient - some clean, rock solid clients as the face of it all are no less important... and so far they suck.


What are the other open source options with Matrix's feature-set?



IRC is great, but it most certainly is not at feature parity. XMPP works iff everyone has the right set of extensions, which can work but often doesn't. Email doesn't even solve the same problem (real-time multiuser chat).


I think "works iff" is slightly inaccurate here, and "different sets of extensions" thing is overblown (not by you personally, but in general discussions like these). The big problem is actually the opposite: that XMPP continues to work when both parties support different levels of the protocol.

Many modern XMPP clients are comparable in features to Matrix clients, but many people still reach for e.g. Pidgin and Adium, despite those not seeing active XMPP development for many years (that is hopefully changing, at least for Pidgin). Despite the evolution of the protocol, these clients are perfectly able to function, just without the modern stuff people expect.

Discovering the right XMPP software (and that it exists) is the hard part for users, and that's part of what we're trying to solve with the Snikket project.

All decentralized protocols face the difficulty of evolution over time. Email has outlived many attempts to evolve it (but maybe there is still hope with initiatives like JMAP). I'd say XMPP is doing a decent job, and is still evolving. Matrix has yet to really face this issue as it's still relatively young.

IRC... I think the majority of its remaining users consider its lack of evolution a feature :)


Can you suggest a well maintained xmpp client? I was partial to pidgin years ago.


If you like Pidgin I'd recommend https://gajim.org/ - it has a similar feel to the UI, is cross-platform and actively developed. Use it with a modern up-to-date server (see https://joinjabber.org/ for some general advice, and https://compliance.conversations.im/ for testing a specific server).


Gajim is undergoing a UI redesign right now that will make it unlike Pidgin, and with a single window only.


Does video/voice work? Can you screen share? Can I share files?

All these bridges seem fine for basic text but modern chat programs do a lot more these days and I personally can't see the point without 1:1 feature parity.

This seems doubly true for a service like Teams versus something like Discord where Teams is going to be installed and configured by a central IT team for all users.

I know a lot of this falls on companies building their own proprietary, non-interoperable messaging platforms and this is an effort to unify them and I don't mean to shit on those efforts but it just seems like it's a lot of effort for becoming a third class citizen when interfacing with those platforms.


> Does video/voice work?

The blog post says:

> Microsoft Teams Bridging supports both group and individual messaging, as well as voice and video conferences.


I somehow missed that! Thanks for clarifying.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: