- cross-posted to:
- programmer_humor@programming.dev
- cross-posted to:
- programmer_humor@programming.dev
Oh, but it absolutely is true. Microsoft really did decide to use React Native for parts of the Windows 11 Start menu. They’re also using it in sections of the Settings app.
The technical reality is even more absurd than the meme suggests. Microsoft is currently maintaining eight different UI frameworks for Windows, including their own .NET MAUI and WinUI 3 that were specifically built for their OS. Yet somehow they thought, “You know what this native operating system needs? A JavaScript framework originally designed for mobile apps.”
The CPU usage spikes aren’t necessarily from React Native itself being particularly heavyweight, but rather from the fundamental architectural choice of running a web-based rendering engine for core system UI elements. Every time you click Start, you’re essentially launching a mini web application just to display a menu.
What’s particularly galling is that Microsoft has acknowledged WinUI’s performance issues for years, to the point where they recommend their partners use the older WPF for performance-critical applications. So instead of fixing their native framework, they decided to add another layer of abstraction.
This is what happens when corporate development teams prioritize “developer experience” and trendy frameworks over system efficiency. Richard Stallman’s expression in that image perfectly captures the appropriate level of technical horror at this decision.
The old world built operating systems. The new world builds web apps that pretend to be operating systems.
Can’t they extract more data from a mobile set-up? I’m assuming that’s why they did it, they’re trying to take it to a phone experience for the corporations.
Nope.
The reason you do react native is because it’s easier to hire react native devs. Further, there’s a plethora of react native libraries that make it easier to make UXes above other UX frameworks.
The problem MS has is they have spent decades making platform locked UX frameworks because they were deathly afraid someone would use Linux instead of Windows.
Browser tech won because every major platform needs a browser and basically no organization was investing in multiplatform UX libraries. The likes of both Microsoft and Apple are openly hostile to such frameworks (QT and GTK come to mind).
The likes of both Microsoft and Apple are openly hostile to such frameworks (QT and GTK come to mind).
Funny thing, the OneDrive client app that ships with Windows, uses Qt
React Native doesn’t render using a browser instance, it’s native code (as the name implies), it’s actually a layer over WinUI 3 (Previous versions used WPF/UWP)
So it’s in the same boat as MAUI, which is also a layer over WinUI 3.
They didn’t say it was?
The CPU usage spikes aren’t necessarily from React Native itself being particularly heavyweight, but rather from the fundamental architectural choice of running a web-based rendering engine for core system UI elements.
I suppose i lack an understanding of whether React Native is a web based rendering engine or not but i figured they could also be referring to edge implementation in the same feature.
Like saying coffee isn’t hot because of the mug it’s in but the brewing machine it came out of.
Oh, the pedants have arrived. How delightful.
Yes, technically The_Decryptor is correct - React Native doesn’t literally spin up a Chromium instance like Electron does. It transpiles JavaScript into native calls. But they’re completely missing the forest for the trees here.
The fundamental architectural absurdity remains unchanged: Microsoft is using a JavaScript framework - originally designed for mobile apps - to render core operating system UI elements. Whether that JavaScript gets compiled to native calls or interpreted in a browser engine is irrelevant to the core criticism.
Your coffee analogy is actually closer to the mark than The_Decryptor realizes. The performance issues aren’t just about the final native calls - they’re about the entire abstraction stack Microsoft has built.
You’ve got JavaScript -> React Native bridge -> WinUI 3 -> whatever underlying Windows API calls. Each layer adds overhead, complexity, and potential failure points. The_Decryptor saying “it’s in the same boat as MAUI” isn’t the defense they think it is - MAUI has its own performance issues precisely because of similar abstraction layers.
This is exactly the kind of technical bike-shedding that lets corporations get away with architectural disasters. Everyone argues about implementation details while the Start menu still stutters when you click it.
The old world would have written the Start menu in C++ and called it a day. The new world creates dependency graphs that look like spider webs and then argues about whether the spider web is technically made of silk or polyester.
Heel yeah now that’s the clarification I’m here for! (Actually honest, cheers and thanks!)
Is it really? Does microsoft have no faith in its own user32 UI API?
Yeah, windows apps, even official ones are just a mix of react native apps.
I used to be with it! (XAML) Then they changed what it is! (WinUI)
WinUI is yet another thing, it’s not React native. It’s kind of a new version of WPF with additional things and you can still use XAML
Fuck JavaScript in all its forms.
Ok, in a browser is fine. But HARD pass on electron and all this bullshit
Ok, in a browser is fine.
JavaScript was never fit for purpose even in a browser. We could’ve had Python or Scheme in the browser instead, but nooooo, Brandon Eich had to be fucking incompetent.
How about Lua? I don’t like Python that much.
I wasn’t idly speculating about languages that I personally happen to like better; I was listing the two languages that Netscape was actively considering at the time before they decided to glom on to the Java hype. When I say “we could’ve had Python or Scheme,” I mean Netscape almost picked Python or Scheme.
If it makes you feel any better, I get the impression that Scheme would’ve been the more likely of the two. Also, this was happening in 1995, so Lua was less than two years old at the time and, according to this page, not internationally known yet (that would happen in 1996).
Gonna be real, Lua would have been perfect for this. I get what you’re saying about netscape though,
What are you talking about, giving one of the only programming languages where binary sizes matters a tiny standard library is a great idea!
Good news: there’s been talk to having python be part of the DOM.
I believe chromium has been working on it but no real thought on when this will happen.
Holy fucking shit this isn’t just a meme, wtaf is going on at Microsoft.
The FOSS aficionados of Lemmy will probably be quick to tell me it’s always been shit, but this seems like a marked increase in bad decisions in the past 5-10 years
Same as everywhere else, management wants random shit done chop chop chop, fires actual developers who tell them they’re the dumbest pieces of shit they’ve seen in this lifetime and hire random bros who say “whatever dude, just wanna get paid” then copy-paste google results because bing sucks.
Middle manglement is the source of nearly all bad decisions once companies get large enough to have it. Upper management is often dog shit, but they usually have an idea of what they want done. Whether that’s. Net positive for consumers is a different story, but they don’t intend for it to be implemented poorly.
Middle manglement then takes that, fucks it up putting each of their little stamps on it as it hits every rung on the ladder as it works it’s way down to the people that have to implement it.
Business majors.
Old Windows was bad, sure, but new Windows is bad on purpose.
Is Growth Mindset. Don’t you have Growth Mindset?
I was expecting it t9 at least be a XAML C# app
~2018 to ~2022 was nice, things started to get a little better. But now it’s trash.
Everything is done by vibe coders under the direction of project managers who’re just trying to get their name on shit. No one actually cares about the quality of the end product.
Switched to Linux at the beginning of the year. Still have a lobotomized local windows 11 boot for gaming/VR still though. Can’t wait for the day I can finally get rid of it totally.
Depending on what games you’re running you might already be able to. https://lvra.gitlab.io/ https://areweanticheatyet.com/ https://www.protondb.com/
I’m rocking an LTSC 10 until 2027.
Can I replace Windows with SteamOS directly yet? -Basic Win11 user who is getting sick of Win11. Get off my WinXpLawn
You don’t need SteamOS, or Bazzite.
Just get a desktop focused distro that looks interesting and install Steam.
Yes and yes. Pick anything that is large and actively under development (Mint, Fedora, Arch, etc.) or anything actively in development based on valve’s stuff (Bazzite, Nobara, SteamOS** but that is currently focused on handheld devices so desktop support technically comes second place. I’m going to let the official steamOS simmer for another 6 months or so before trying it on a custom build desktop.)
Valve and AMD have freed Linux gaming by injecting cash into the FOSS ecosystem and giving it enough power to build momentum. Nvidia’s monopoly on AI, academic researchers getting budgets for it, and Microsoft’s and Apple’s refusal to make software that meets scientific quality, have all coalesced freeing us from proprietary drivers never getting ported to Linux.
The year of the Linux desktop is now, and is so hype inducing that Microsoft used their trillions of dollars and world class research facilities to calculate the exact date for us: October 14.
You can definitely replace it with Linux Mint, I did it 8 months ago and it was seamless, save for a little bit of fussing with my GPU driver.
If you have AMD hardware, maybe. If not, definitely will be troubles.
Probably not a good idea to go for SteamOS. I get the appeal, but I’ve since come to realize that SteamOS isn’t going to work for what we want. It’s designed for handhelds, so it’s never going to be seamless for desktops.
Valve’s work on SteamOS is open so their work is utilized by a bunch of other distros. So you can actually get the best of both worlds if you expand your options a bit. Pick a popular distro and you’ll be fine
As of last week, you can. But Valve isn’t officially recommending it as a general purpose OS yet.
There are some Linux distros that are very similar to steamOS that are very popular right now. I personally ditched Windows for Bazzite early this year and haven’t had any regrets about it. I’ve been using both windows and Linux for decades and this was the first distro that made me confident enough to ditch Windows completely.
I got a few bugs here and there but only one annoying issue that I had to fix (PC wouldn’t wake up from sleep properly). I’m fine with using the terminal on my day to day so I can’t say for sure but I think I only ever needed to use it once, to fix that specific issue.
All games I’ve tried worked perfectly well, though one of them (InZoi) required installing an external tool (proton-GE). Some older stuff like World of Warcraft were easier to install on it than on windows (and wow doesn’t even support it officially).
Unlike other popular distros like Mint, Bazzite works in a way that prevents programs from messing with each other or with the system itself, so you’re much more unlikely to ever break it. And if you do break it, there’s a quick option to go back to the last working version. The downside is that if you manage to break it even beyond that, then fixing the issue will probably be harder than it would be to fix a similar problem on Mint.
Unlike other popular distros like Mint, Bazzite works in a way that prevents programs from messing with each other or with the system itself, so you’re much more unlikely to ever break it. And if you do break it, there’s a quick option to go back to the last working version.
Most Linux distros running on BTRFS with a snapshot manager like Timeshift or Snapper give you the same functionality, but I do get the appeal of Bazzite/immutable distros, especially for people who are new to Linux.
I made a post starting my Linux journey (and I probably won’t start for a while until I can get a new PC) but hopefully you can get some information out of it
I have heard that Classic Shell is once again functional under Windows 11, but it was critically broken and thoroughly unusable for too long for me, and I have since moved on to StartIsBack, which can do almost everything I found essential with Classic Shell.
long time startisback user, even paid for it.
Recently something has changed and the start menu likes to search for apps in its browser (not my default app). I used to press windows key then type “snip” for the screenshot tool, now half of the time is does the wrong thing …
Also here’s a link to post talking about react in the start menu https://news.ycombinator.com/item?id=30384494
glad I am not the only one. I even disabled the Bing and Websearch bullshit, but somehow in 1 of 5 cases the search result is not the software I am looking for. Even when I type exactly its name.
Only 1 in 5? This is one of my most frequent gripes I run into. Type ‘sq’ and you get ‘SQL Server Management Studio’ and ‘SQL Server Configuration Manager’. The second you type the ‘L’ for ‘sql’ and all those apps disappear…what?
Yeah. It’s quite obnoxious how bad they’ve made their OS and it’s obvious they are FARMING searches on bing with these tactics lmao
I had to test it. That is wild.
there is massive financial incentives for these companies to write shit code because it makes people have to get newer computers
Clean code is more expensive than shit. That adds to the problem.
ExplorerPatcher https://github.com/valinet
Been using it for a few months, quite happy. Does not seem to spike CPU with my settings
My pc “spikes” from 6% to 11% but was only noticeable when I raised the update speed to high
Is that the spiking, and are other people seeing more?
Yeah, about 5-6%.
that causes a spike in cpu usage
Literally anything you do on a computer does this. That’s why turbo boost exists.
Why would you bother to write efficient code when you can just throw more resources at it? The future is now, old man.
Any good start menu will have almost the whole start menu loaded into memory and clicking the start button should do nothing more than making it visible and enabling some event handlers.
I tried spam clicking my Javascript start menu on Gnome Linux (ArcMenu):
- 1 click per second: 0.2% increase
- 5 clicks per second: 1% increase
- 10 clicks per second: 2% increase
Looking at the reddit thread posted in this discussion somewhere it looks like a single click is 5% on Windows.
So no. This just shows awful programming by Microsoft and it’s not up to the end users to just buy better hardware.
So no. This just shows awful programming by Microsoft and it’s not up to the end users to just buy better hardware
Exactly. Javascript performs just as well as any other JIT scripting language. But taking bets, they are loading the entire engine on every click event instead just keeping the engine running in the background…
I’ll take the bet and say “user clicks start so we must startup copilot” .
This explains so much
Jesus I really need to install linux don’t I?
Is there a distribution that is better at running conversion layers like Wine? I need to run some windows only software (Solidworks, Affinity Suite…)
At the risk of saying, “I use arch btw” - I’ve found CachyOS to be fairly great.
I’m running it on my Rog Zephyrus M16 purchased in late 2023 (it came with Windows 11). It’s great for pretty much all games that I’ve thrown at it with proton, Heroic games handles Amazon Games, Epic, and GOG stuff.
You have lots of options (probably too many to be honest) for getting windows programs to run on Linux - ranging from very hands on with no-frills wine to more hand holding things like Lutris or Bottles.
My wife (who is only a techie from osmosis) switched to CachyOS on her laptop and seems to be fine with it (her game of choice is Last Epoch and it’s painless to run).
All of that is not Cachy OS specific, you can use any major distro
I’ve got Wine 9, running on Linux Mint. I mostly use it for older games and a few Windows programs like IrfanView. All my modern games I bought on Steam, run great under Linux. (Steam has a native Linux client and uses it’s own Windows compatability layer called Proton to run games).
I use LibreOffice for productivity, Thunderbird for email and GIMP has a native Linux client, too.
For windows-only software, you can keep a copy of windows as a dual boot. Not the most ideal solution, but minimizing windows usage by any little bit decreases the chances of you getting annoyed at Windows.
Alternatively, if it’s a lightweight software, you could run it in a virtual machine and use something like WinApps to blend it into Linux