Remember about a week ago when Microsoft dropped a “performance enhancement” trailer for their new version of Teams that was so bad that it was truly beyond parody? I savaged it at the time. Little did I know it was worse than I could have ever imagined.
Microsoft is preparing to launch a new version of Microsoft Teams next month that has been rebuilt from the ground up to significantly improve its system resource usage on PCs and laptops. Sources familiar with Microsoft’s plans tell The Verge that the software giant has recently started testing this new Teams client broadly inside Microsoft, with plans to roll out a preview to Microsoft Teams users in March.
You see, they built a new architecture from the ground up specifically for performance. This was the result.
It would have been one thing if some engineers got brought in at the eleventh hour and managed to squeeze some mildly better performance out of a fundamentally dubious architecture. That wouldn’t absolve Microsoft as a whole, but we could praise those engineers for their minor accomplishment. After all, they were saddled with a horribly engineered piece of software, and did what they could.
Similarly, it would be forgivable if this was a new piece of software that had to be rushed out the door because it’s in a winner take all field where being first to market is everything, and software quality is nothing. It wouldn’t be enjoyable, but there would be a certain understanding of the business reality, were that the case.
But no, this is years old software that got rebuilt from the ground up. After years, this crack squad of geniuses managed to get performance that was 1/1000th of what it should be, as opposed to 1/2000th.
Known as Microsoft Teams 2.0 or 2.1 internally, Microsoft has been working on this new Teams client for years. The app should use 50 percent less memory, tax the CPU less, and result in better battery life on laptops.
Allow me to explain. There are some technologies that you can use to make terrible programs that work both in a browser, as well as in a desktop environment. Should you do this? Not if you aren’t a tiny corporation with an extremely simple app.
It is entirely unnecessary and frankly ridiculous. There is nothing stopping anyone, especially a corporation with the resources of Microsoft, from compiling native versions of the program for different platforms, with a stripped down, lightweight version for the web. Frankly, you shouldn’t even have to strip it down much. It’s a chat app, not a real time 3D simulation that also has complicated video editing built in.
Every video game has 99.9% of its code be cross platform. But when it gets compiled, it gets compiled to a specific target platform. This is not a big deal. It’s not like you need to recreate the entire game from scratch when building for Windows versus Gamestation 7, you just throw in a few if statements and compile away. Maybe you figure out the new controls and have a slightly different version after all.
Things are different if you build the program for the mobile audience, for a number of reasons. Many of those reasons apply to chat apps such as Teams. Often the desktop version of a piece of software will be more fully featured than the mobile version. A classic example would be any sort of video editing software, which would need to be made as basic as possible for a phone.
A browser version of a program will always be drastically lower performance, as well as undoubtedly buggier, considering that you have to make it work with HTML and JS, Satan’s gift to the programming world. However, a chat app is so simple, that it should have been no problem for Microsoft to get something functional up and running. And for the record, all these versions can communicate to each other, since you don’t need to be running the same version when you’re sending and receiving data from a server. It’s not like they were forced to create one version.
But Microsoft is a small indie company, so they decided that they could only build one version of their software, and had to use Horribly Slow Framework combined with Being Retarded to make the magic happen. They just didn’t have the funds for making mildly different versions of their software that weren’t as bloated as a five week old corpse that just floated to the top of a river.
Above is from a real piece. Again, a barely competent group of developers could have just written a native application for Windows, and then ported this to wherever. Understand that when they start throwing random Proper Nouns at you. None of this was necessary in the first place.
Before we leave this piece, user Paradroid888 left the following comment.
Performance aside it’s such an unpolished piece of software. A recent update saw the chat right-click menu have async items that pop in while you’re trying to select an option, moving the menu. Plus the menu moves if a new message arrives, another annoyance. Silly little things like reaction emoji having a count on them in a 1:1 chat. Might not sound like much, but it makes me concerned about their ability to pull off a major architectural rewrite like this.
And user ikjadoon left this comment.
Whatever fixes the mountains of bugs: no mini-webcam when minimizing Teams during a call, the horrible share screen bar overlapping browser tabs, the weird failures to launch, the RAM, and geez, the only native M1 video conferencing app that actually reduces my battery during a call.And the damn click lag.
I want it to be clear that Teams is truly awful software, even ignoring the performance problems. I’m focusing on the performance because Microsoft is focusing on the performance.
The classic client of Microsoft Teams used open-source software such as Electron as the host, AngularJS as the web development framework, and a variety of custom controls constructed using HTML and CSS.
Intentionally making desktop programs in HTLM and CSS instead of a real programming language and the OS native APIs.
You do you, Microsoft.
When the development of Teams began in 2015, these choices enabled the rapid delivery of cross-platform web and desktop clients. However, as the capabilities and innovation of Teams expanded significantly over time, it placed strain on device resources. Recognizing this, the team began analyzing available technologies, benchmarking, building prototypes, and defining the new architecture known internally as the “north star”.
The LOLcow got a codename. Presumptuous.
Key decisions made included participating and standardizing on the Fluent UI collection of UX controls, transitioning from Angular to React for building user interfaces, moving data processing out of the main thread to a client data layer worker, and lastly, transitioning from Electron to leverage WebView2 as the host.
We’re pretty much at space age technology here. Multiple geniuses contributed to this as their life’s work. Consider yourself blessed that you get to use this civilizational achievement.
Going beyond the core technology upgrade we also invested heavily on performance, stability, ease-of-use, and greater flexibility. Below are some examples of these investments.
Push notifications are a great example of a genius level performance “investment”. Also, some pedants might point out that “Harden Security” and “Simplify Accessibility” are more like “goals” than “specific technologies”, with “Simplify Accessibility” also being redundant. Don’t listen to them Microsoft, they’re just jealous and hateful and right.
Finally, “Embrace Open Source” is, again, not an investment, but rather a corporate strategy, and one that is kind of pathetic from a company like Microsoft which has the resources to write whatever hyper-specific code they need for their purposes. Honestly, the longer I look at the above infographic, the more baffled I become.
The same is true when reading the Proper Noun Overload in the below paragraph.
Exploring the architecture further, the accompanying diagram presents a broad overview of the primary elements that comprise the desktop client architecture. The native host takes advantage of Edge WebView2, GraphQL is employed to abstract the client data layer, Inter-process communication (IPC) acts as the connecting agent, and ReactJS, TypeScript, and Fluent UI are the standardized technologies used for the user experience. Apps built on the Teams platform no longer require the overhead of a WebView wrapper. Apps are now hosted in an out of process iFrame using the Edge Renderer Process.
Get a load of this architecture. They’re almost like a real techology company!
Who was responsible for this garbage? We have to hop back to the first Verge piece to find out.
In a Twitter thread detailing the initial Microsoft Teams improvements for Windows 11 in 2021, former head of Microsoft Teams engineering Rish Tandon said Microsoft’s new architecture will be key for future Teams improvements. “This architecture will help us add support for multiple accounts, work life scenarios, release predictability, and scale up for the client,” said Tandon. “It will be a journey but with Windows 11 we have taken key first steps.”
Rish Tandon, the former “Chief Vice President of Engineering” for Microsoft Teams. Boy does he ever care about performance. That’s why they built such a blazing fast program.
The above tweet is from here. Again, this isn’t a random employee, this is the chief engineer in charge. Some jerkoff on BANG tried telling me that all these tech corporations secretly had all this top talent, and that everyone who worked for them was incredibly intelligent. A casual glance down this Pajeet’s timeline and I found him unironically praising Star Trek Picard. This is what we’re dealing with.
You might be thinking that he moved on from Microsoft because he was fired for his terrible work. How utterly wrong you are. In reality, this retard got poached by Facebook to be their VP of engineering.
Yes, this is real. This guy is the VP of engineering at Facebook/Meta. Do you wonder now why John Carmack ragequit that shitshow? Do you wonder why the Metaverse is such trash? It’s not just this guy, but it’s the people who hired this guy in the first place.
Before failing upwards at Microsoft Teams he was the “product and engineering leader” for Amazon’s mobile apps, the Chief Technology Officer for some gay app named “Heal”, “Director of Technology” at Expedia, and started out working only four years as a software engineer on the Excel team. There is no evidence of him being an above average coder, but he sure did have an above average rise through the coding ranks, didn’t he?
And I really can’t stress enough how much Microsoft, and Tandon himself, were constantly harping on about the performance of their program which now runs roughly 1,000 times slower than it ought to and takes up one hundred times more memory than it should.
Yes, he unironically refers to the Teams engineering squad as a “performance first culture.”
Jamie, can we see that video they put out again please? The one where the chat app takes ten seconds to boot, 0.9 seconds to switch chats (WTF?) and multiple seconds to join a meeting.
Keep in mind, this guy spent four years working on Teams leading the project. And Microsoft didn’t need to rush anything to market to capture market share or anything like that. They spent four years trying to improve the performance, and came up with the above. It’s like a morbidly obese 700 lbs man bragging about losing two ounces of weight after six years of dieting.
And again, he constantly harps on performance. That’s his entire twitter feed. Unironically praising Microsoft Teams peformance before unironically praising Star Trek: Picard.
He actually likes this garbage.
I said it before, and I’ll say it again. The computer age is coming to an end. The technical solutions here are obvious, but the sociological solutions are simply insurmountable at this point. When you have these totally incompetent diversity hire morons being praised for breathtaking failure and given cushy sinecures at other (fake) tech companies, it’s over. If you want well made software, you must first throw the revolution.