Microsoft is ditching Electron for Teams
blog.devgenius.io
blog.devgenius.io
I only figured it out by accident - through the Microsoft Authenticator App I got to a login/authentication history somewhere, and there I saw that Teams was automatically re-authenticating itself in the background. Probably some sort of token renewal or something.
But it was doing that LOTS. Like 2 or 3 times per SECOND. And once it starts doing that, it seems to be doing that indefinitely (until you restart the app) - with absolutely no hint of what's happening inside the app.
A few times I got into a weird auth bug scenario, where if a window popped up to auth, and I didn't get it right the first time, it would send me into an endless loop of popping out auth windows (while Teams shows me offline). Whether I succeed with auth in the subsequent windows or not, or even whether i just dismiss the window, it doesn't matter. They kept popping up almost instantly again, dragging away window focus from whatever other application window was in focus. Even closing Teams wouldn't help, only reboot would reliably resolve it (though given how few times I've observed it, I didn't bother looking deeper than that into it). And that was on macOS.
It usually works fine for an hour or two after restarting the app - and then it suddenly starts refreshing endlessly as fast as it can.
There's no visible reason why it would suddenly be doing so many API requests, and wasn't doing them before. (And then stops doing them again, after being restarted.)
I'm not kidding you. They DDoS themselves because the app apparently doesn't cache anything.
Oh, and don't try what happens when skype.com doesn't work. The whole app goes maniac then.
Also, I believe those re-authentications are actually ALL the app is doing in those moments.
It's not actually loading anything, not emojis, not notifications or anything else (all of the app still works normally) - it's just re-authenticating, re-authenticating, re-authenticating, re-authenticating... in the background (eating quite a bit of CPU and bandwidth in the process).
Why people still do that?
When I ran a very large O365 environment, it was even harder as we had a dedicated 10Gb circuit to Microsofts network, and and depending on various bugs, conditions, etc, you could easily send traffic to the wrong place and impact performance. (For example, if you inspect TLS traffic, that latency will kill Outlook application performance)
The other big issue is that they saddled with the technical debt of legacy auth, and many failure scenarios lead to that path, which really sucks.
Solution: Rewrite product, using essentially the same architecture (Chrome renderer wrapped in native exe)
We'll end up with similar levels of performance, but an entirely new host of exciting bugs
Is that really why people turn to electron though? I'm pretty sure its not.
The problem is writing code for code reviews, not for users. You can't add a performance-aware architecture as an afterthought, and it's really hard to fix your code with a profiler if every single operation is slower than necessary.
On a very general level, modern development often encourages "elegance" as in "code looks nice". Small things like looping through an array by creating an anonymous lambda function, creating an array-looping promise using that lambda, etc. What used to be one int, one comparison and one increment, is now fifteen objects created, seven levels of indirection and at least a few library calls.
This gets you software that manages to not keep up with my typing speed on a multi-gigahertz processor. It's not any single line of code that's hogging the cycles, and it's not fixable by changing the runtime from one Chrome variant to another.
The code looks much nicer though, I'm not denying that.
Doesn't Electron use two instances of it though, one for Node.js and one for the browser UI, with some sort of message-passing inbetween? That would tend to slow things down.
This sounds like the 90s-2000s enterprise OOP GoF pattern nightmares. I'm not sure lambdas are at fault here, since most languages can efficiently handle those. To me the not too crazy functional programming resurgence is actually relief from these object hierarchies distributed over many files which the computer and I don't like. Of course the architecture astronauts are still out and about talking about adding levels of indirection we can't even imagine yet
It still supports vba because their customers won't allow them to kill it, not because they haven't tried to replace it (e.g. JavaScript has been the recommended way to make extensions for a while).
The story is a bit of a mess, but VBA is still the only way to use the COM API and access local system resources: https://docs.microsoft.com/en-us/office/dev/scripts/resource...
They don't allow unsecured access the local system, thankfully, but Javascript add-ins are basically equivalent to the actual Excel COM API. You're linking to an "office scripts" page which is for a more recent macro-recorder like functionality, but the actual javascript api (https://docs.microsoft.com/en-us/javascript/api/excel?view=e...) is fairly complete and basically equivalent to the Excel COM API that you would use through VBA. It is also not limited to sidebars.
But thanks!
It’s amazing that it works at all, but I think it’s unfair to blame the client, which does a decent job at making a semi-coherent product. It’s issues are really about design.
Man do I hate that guy. He is a thick as dogshit and about as capable at making a decision as one too. 5 minutes before that Teams conversation I had to explain the difference between a satellite and a ground station. Man is that guy stupid.
So no, I don’t buy that people who’ve used worse are more likely to put up. It’s jaded people who have lost interest in technology who are the ones who settle. The rest of us keep on pushing for something better.
p.s. IMHO Slack integrations is the worst thing ever - usually abused to death and never remotely useful.
It’d be very cool if they could!
There is an official deb package for Ubuntu. I installed it without paying for Office 365. Never actually used it so far though. Will it ask me to pay when I try to?
Its also the best new piece of big software out there. In the days before teams, remote working together in an entire company was hell. Either you were on skype for business, or each team had their own thing that was different and not official.
With teams, everyone is on there. The other microsoft things are integrated, not seamlessly because of bugs, but easily good enough for most things. The chat is available and used, and a nice alternative to e-mail for smaller things.
Teams works well enough for most people, and is very easy to get started with. So most people actually use it, and you get a network effect.
- account setup - sharepoint integration - 'gamer' reputation - (I think) no on-prem solution to keep things off external servers - ease of sending an outlook invite (from native outlook) that immediately comes with a video meeting link.
Teams is a pile of bad software development practices. But it has the correct features to actually be adopted by enterprise. Sadly a large part of those features come from microsoft lock-in and are very hard for competitors to match.
What I found quite notable about Teams is that for all its flaws and issues, the core functionality is very, very solid! Calls never drop, noise suppression is quite good, it’s slow but rarely freezes/crashes etc.
They know very well what would actually disqualify them with people who decide over its usage.
They must have some (in this area very good) project management philosophy the other teams don’t have, as I haven’t seen such a focus on core functionality in any other Microsoft product - bugs in other apps vary randomly in severity, often enough losing you a lot of time or data.
That's funny, because it is exactly the opposite of my experience. Every day I have random issues with MS Teams: Call drops, microphone suddenly "does not work", which can be fixed by rejoining a call, so it cannot have been the microphone, noisy output from other call participants, cannot call anyone who is calling you at the same time, not showing that and not establishing a call when two individuals call each other, not showing any notification about anyone calling when being in a call already and the list probably goes on, as this is just what comes to mind right now.
> They know very well what would actually disqualify them with people who decide over its usage.
In my mind they are long disqualified and if I had a say, I would not even use it at all. So actually they do not seem to know what would disqualify them.
That's a massive understatement. I'd go as far and say that even if people would try to design a worse chat (and calls) application they'd fail spectacularly.
Nobody ever got fired for buying Microsoft: chapter N+1.
If you're already paying them money, it's just there and is somewhat integrated with the rest of the apps, but I doubt there's a lot of orgs out there purchasing Office 365 specifically because of Teams.
Because it's a) "free" and b) comes with the right enterprise security/isolation features by default. (For example, there's really no such thing as a "corporate Telegram account".)
I sometimes feel there must be a secret, second version of Teams that is not a steaming pile of shit with bland UI, idiotic text input, copy&paste behaviour and non-functional activity detection. If one has used Slack before, Teams feels like a sad joke. The video calling is pretty good though.
Yeah I get your point, and think about it every time I start an Electron based installer to customise Visual Studio installation.
And why can I search for chat logs and only find the exact line I searched for, but not the context it was posted in?
I have never used Slack professionally, and Teams did make my life easier when it came to not sending E-mail all the time or having all types of editors and programs there for us to work collaboratively, but the interface, memory hogging, slow loading, no progress bars for downloading (no download management at all! Click on a huge file by accident? It's getting downloaded, no way to stop it!). Have I clicked a button or not? No way of knowing until the thing loads, and that sometimes takes a second.
Yes, Microsoft GUIs are riddled with tabs of the other kind.
I have problems with the Teams Android app, i have issues with Teams in Firefox, i have issues with the Teams desktop app, i have issues with Teams inside Citrix. Its just crappy experience altogether. I tell colleagues to write an email, if they want to reach me reliably.
Then I hopped in to Task Manager, and it turned out my issued laptop had 64GB of RAM. Well, that explains that.
- No, just chatting in Teams.
The one thing that drives me crazy is that even Google has took its time to make Meet work well in Firefox, while Microsoft can't be bothered to do the same. The same with Skype Web, where you have to bypass its browser check in order to use it on Firefox.
Yes, they're getting rid of Electron. No, they aren't going native. Yes, they're doing what Qt and Gtk+ and Microsoft have already been doing for years and just using the toolkit's built-in ability to embed a web browser into a native frame. Yes, this is pretty much just what they were doing during XP but with a more bloated web browser.
> Since a unique instance of Chrome OS runs in the backend of every Electron app
After using Electron I wouldn't be surprised.
> As a result, Teams would essentially become close to a native Windows app.
Hacker News is native because I'm running it within my native browser.
Sadly, the work version of Microsoft Teams is here to stay, with its power hungry Electron and all of the badly implemented functions that we (users) have been complaining since forever.
E.g. if Teams used to use 95% of your system, now it uses only 90%.
Technically 2x less could be the opposite of 2x more, and technically 2x more means 3 times as much. Really what I think this shows is that it is much nicer to talk about factors than it is to talk about relative in/de-creases.
I would pay not to use it.
Their 'native' apps don't even try to integrate with the OS - so you get custom notifications and stuff.
The UI also is super laggy and slow.
And then heaven forbid I need to scroll more than a little bit.
This doesn't sound like it solves ANY of that. They just changed the rendering engine. Whoopdeefuckingdoo.