>It’s React Native for Windows which is a flavor of React Native that directly calls Windows APIs including, you guessed it, WinUI 3.
>So that’s it. Windows Start has a very small section (that can be disabled) that’s written in a framework that follows React principles and compiles down to native code.
False. React Native doesn't "compile down to native code". It runs actual JavaScript, just not inside a browser, but a standalone JS runtime.
I wonder what engine they are using with ReactNative on Windows. Is it Hermes like with regular RN projects targeting iOS/Android? Or do they run on some system installation of a more traditional engine like V8/JavaScriptCore?
> This was an oversimplification bordering on being misleading. It’s a lighter JS runtime that’s calling native code for rendering controls. The argument still has merit. Just because something in JS doesn’t make it slow or bloated. Interpreted languages will almost always be slower than their native compiled counterparts, but it’s negligble [sic] for these purposes.
Isn't it a full JS runtime? I think by "a lighter JS runtime that's calling native code" you mean it doesn't deal with HTML/CSS rendering, but that's not what JS runtime means. These are separate parts of the browser architecture.
I don't agree it's negligible for this purpose. Core OS functionality should run well on old/cheap machines, and throwing in unnecessary interpreters/JITs for trivial stuff is inconsistent with their recently announced commitment to "faster and more responsive Windows experiences" and "improved memory efficiency".
That is actually still React. React is React Core + ReactDOM (web) renderer. React Native is the React Core + native renderer. They are both still React, and they both use Javascript, which while fast when JIT'd, is typically much slower than native code.
I'm not commenting on whether this is a good or bad thing, but the article strikes me as a bit misleading.
The whole UI situation in Windows is absolutely ludicrous.
Is the recommendations panel in the start menu, which nobody actually wants to begin with, really so complicated that it justifies bringing in a JS runtime?
And is C# and WinUI really so hard to use that they can’t just make it with that?
And if WinUI is hard to use, maybe they should like.. make it better?
At least Apple had the decency to take the React paradigm and turn it into a native part of their development platform with SwiftUI, even if the implementation has been a bit rough around the edges.
Sure, slightly inaccurate title, but the point they're making is valid, this comment isn't really a substantive critique.
I could be wrong but I feel like when most HN commenters say that something "uses React" and also imply that that's a bad thing, what they really mean is "it loads a full web rendering engine and consumes ~200mb of unnecessary ram". Neither of those things are true here.
> That is built with React Native for Windows. No, that is not a full JavaScript framework in your start menu.
This is incorrect. It is a full JavaScript framework in your start menu.
I don't see your read that it's about ram-hungry web views either. To me, "Start menu uses React" is a dig that Microsoft is so uncommitted to it's native development platform that they (partially) don't use it in one of the most 'core' parts of the operating system.
Shouldn't devs be allowed to select what they feel is the "best" choice for a given component? While I wouldn't expect to see a SwiftUI in Windows from Microsoft, Microsoft hasn't been adverse to various NIH web frameworks for quite some time now.
If it fits and meets the goals of the project, why not?
If Microsoft developers' "best" choice for a tiny UI component like this is not it's flagship native UI framework, then that's a problem for Microsoft. That is the criticism.
> Shouldn't devs be allowed to select what they feel is the "best" choice for a given component?
To some extent, yes. But if they choose React Native, something's probably wrong, because (despite what the article says) that requires throwing in a Javascript engine, significantly bloating a core Windows component. If they only use it for a small section ("that can be disabled", or in other words is on by default), it seems like an even poorer trade-off, as most users suffer the pain but the devs are making minimal advantage of whatever benefits it provides.
If the developers are correct that this is the best choice, that reflects poorly on the quality of Microsoft's core native development platforms, as madeofpalk said.
If the developers of a core Windows component are incorrect about the best choice, that reflects poorly on this team, and I might be inclined to say no, someone more senior should be making the choice.
There are two possibilities: Either it’s really the best choice among the available frameworks (very questionable), or they picked it regardless. Both reflect badly on Microsoft, given what React Native is, and given how central the Start menu is to the Windows experience.
Here's one: Microsoft management heavily incentivizes their developers to use LLMs for virtually everything (to the "do it or you're fired" level) and the LLM (due to its training data or whatever) is far more able to pump out code with React Native than their own frameworks. This makes it the right choice for them. Not for the user, but you can't have everything.
I don't have any inside information; I'm running with the hypothetical.
>No, Windows Start isn’t built on React. No part of the start menu actually uses React.
But then
>This is the Windows 11 start menu. See that Recommended section at the bottom of it? That is built with React Native for Windows.
Its not just the headline its the content of the article.
What it should have done is focused on this claim:
>Microsoft is also vowing to use its native Windows UI framework, WinUI, in more areas of the system
Because like they said, React Native is calling WinUI.
But trying to split the React/Native hair is honestly just tiring. Its like saying you dont drink Coke, and then downing a full glass of Coke zero. "Oh but what I meant is that it doesn't call any sugar dependencies at all" is just weird. Just say you don't drink Sugar.
Exactly this. And it is on a portion of the Start menu that can be fully disabled. Heck, my start menu looks like the Windows 10 start menu (yes, this is OOTB) as I wasn't fond of the "new" look of the Windows 11 start menu.
But we'll always hear "it's React!". Like most things, the masses must feed on the Internet outrage without critical thought.
It may not involve a webview, but from what I can tell it definitely still is running JavaScript.
Either way it doesn't matter. As someone who has used Windows in a significant way since the 90s, the taskbar and start menu are a buggy mess. The new design is awful, I just want a list of my programs like before.
The recommended section using React Native is honestly more strange and confusing than if they had just used React for the whole thing. It doesn't seem like a particularly complex UI element, it would be easier to just develop it using the already used native APIs.
I understand there is a position of "we've always done it this way, so we keep doing it this way"
And.
"we need to move with the times and use new tech!".
But surely there is some happy middle ground that doesn't end up with a entire js runtime in the damn start menu?
I'm a fairly casual dev compared to faang folk, but surely even they realised this was an awful choice?
Fatal error by the author: They’re right, it doesn’t use React in the way that everyone actually means and criticises. It still technically uses React though, so—as is already evident—you still get the worst of the worst, bad-faith arguers saying “WELL ACKSHULLY…”
> This is the Windows 11 start menu. See that Recommended section at the bottom of it? That is built with React Native for Windows. No, that is not a full JavaScript framework in your start menu. There’s no web view / browser running gobbling up your resources. It’s React Native for Windows which is a flavor of React Native that directly calls Windows APIs including, you guessed it, WinUI 3.
I would still say that means Windows Start uses React, frankly.
I'm not sure that it uses React Native, but modern add-ins for Office are JS, so any injected modern add-in will be using JS rather than COM/C/C++. This gave add-ins portability between all supported Office platforms, increased security, and made administration much easier.
The internet tends to flatten everything into “it's React”.
React Native for Windows is quite different from embedding a web React app in the OS shell. It’s essentially a renderer that maps React components to native WinUI controls.
So saying “Windows Start is written in React” is a bit like saying an iOS app built with SwiftUI is “written in HTML”.
nit: the embedded screenshot of the Windows 11 Start Menu is low res enough that seeing/reading the Recommended section is challenging without squinting!
The weirdest thing about this (which is frankly bizarre) is Microsoft emphatically shilling React Native for MacOS[1] usage (???). Like, wtf? Why? Not only is it embarassing for MS to be using another competing company's (Facebook's) UI layer when they're, you know, an operating system company. But they're also pushing it for competing operating systems. What idiotic PM signed off on this? How in the world does Microsoft benefit out of promulgating Facebook's technology?
Microsoft decided to move to be a cloud services company instead of an operating system company. The operating system is merely a convenient means to acquiring new service subscriptions.
Apple is a hardware company and likes to have control over the whole user experience. Microsoft doesn’t care about the experience as long as they can sell subscriptions, and doesn’t care much about hardware either.
The amount of misinformation that spreads from a single tweet or blog post is insane. Someone says "Windows uses React" and suddenly it's gospel. The actual XAML Islands explanation makes way more sense from a performance standpoint. Microsoft has been using XAML for their UI framework for years, why would they switch to React for something as performance-critical as the Start menu?
>It’s React Native for Windows which is a flavor of React Native that directly calls Windows APIs including, you guessed it, WinUI 3.
>So that’s it. Windows Start has a very small section (that can be disabled) that’s written in a framework that follows React principles and compiles down to native code.
False. React Native doesn't "compile down to native code". It runs actual JavaScript, just not inside a browser, but a standalone JS runtime.
On slow enough Azure VDI host you could briefly see no-css language string when the start menu was still preparing for actual usage
lol
I wonder what engine they are using with ReactNative on Windows. Is it Hermes like with regular RN projects targeting iOS/Android? Or do they run on some system installation of a more traditional engine like V8/JavaScriptCore?
Yep, oversimplification on my part. I'll make some edits.
I see your edits:
> This was an oversimplification bordering on being misleading. It’s a lighter JS runtime that’s calling native code for rendering controls. The argument still has merit. Just because something in JS doesn’t make it slow or bloated. Interpreted languages will almost always be slower than their native compiled counterparts, but it’s negligble [sic] for these purposes.
Isn't it a full JS runtime? I think by "a lighter JS runtime that's calling native code" you mean it doesn't deal with HTML/CSS rendering, but that's not what JS runtime means. These are separate parts of the browser architecture.
I don't agree it's negligible for this purpose. Core OS functionality should run well on old/cheap machines, and throwing in unnecessary interpreters/JITs for trivial stuff is inconsistent with their recently announced commitment to "faster and more responsive Windows experiences" and "improved memory efficiency".
That is actually still React. React is React Core + ReactDOM (web) renderer. React Native is the React Core + native renderer. They are both still React, and they both use Javascript, which while fast when JIT'd, is typically much slower than native code.
I'm not commenting on whether this is a good or bad thing, but the article strikes me as a bit misleading.
Added some footnotes to add clarification
>Windows Start does not use React
Ok
>This is the part of the Windows Start that uses React.
Ok
The whole UI situation in Windows is absolutely ludicrous.
Is the recommendations panel in the start menu, which nobody actually wants to begin with, really so complicated that it justifies bringing in a JS runtime?
And is C# and WinUI really so hard to use that they can’t just make it with that?
And if WinUI is hard to use, maybe they should like.. make it better?
At least Apple had the decency to take the React paradigm and turn it into a native part of their development platform with SwiftUI, even if the implementation has been a bit rough around the edges.
I mean, it looks super complicated to me by now. Why on earth they did it, that's a different story
Sure, slightly inaccurate title, but the point they're making is valid, this comment isn't really a substantive critique.
I could be wrong but I feel like when most HN commenters say that something "uses React" and also imply that that's a bad thing, what they really mean is "it loads a full web rendering engine and consumes ~200mb of unnecessary ram". Neither of those things are true here.
> That is built with React Native for Windows. No, that is not a full JavaScript framework in your start menu.
This is incorrect. It is a full JavaScript framework in your start menu.
I don't see your read that it's about ram-hungry web views either. To me, "Start menu uses React" is a dig that Microsoft is so uncommitted to it's native development platform that they (partially) don't use it in one of the most 'core' parts of the operating system.
Shouldn't devs be allowed to select what they feel is the "best" choice for a given component? While I wouldn't expect to see a SwiftUI in Windows from Microsoft, Microsoft hasn't been adverse to various NIH web frameworks for quite some time now.
If it fits and meets the goals of the project, why not?
If Microsoft developers' "best" choice for a tiny UI component like this is not it's flagship native UI framework, then that's a problem for Microsoft. That is the criticism.
You have inside knowledge of why React Native was chosen?
> Shouldn't devs be allowed to select what they feel is the "best" choice for a given component?
To some extent, yes. But if they choose React Native, something's probably wrong, because (despite what the article says) that requires throwing in a Javascript engine, significantly bloating a core Windows component. If they only use it for a small section ("that can be disabled", or in other words is on by default), it seems like an even poorer trade-off, as most users suffer the pain but the devs are making minimal advantage of whatever benefits it provides.
If the developers are correct that this is the best choice, that reflects poorly on the quality of Microsoft's core native development platforms, as madeofpalk said.
If the developers of a core Windows component are incorrect about the best choice, that reflects poorly on this team, and I might be inclined to say no, someone more senior should be making the choice.
The critique is exactly that they apparently felt that React Native was the best choice for such a component.
And if it was the best choice, the critique isn't valid.
If you know why it was chosen and if it was a bad choice compared to other frameworks, please do tell.
There are two possibilities: Either it’s really the best choice among the available frameworks (very questionable), or they picked it regardless. Both reflect badly on Microsoft, given what React Native is, and given how central the Start menu is to the Windows experience.
What are some of the possible hypothetical reasons that would make introducing React Native to the core OS start menu like this the best choice?
Here's one: Microsoft management heavily incentivizes their developers to use LLMs for virtually everything (to the "do it or you're fired" level) and the LLM (due to its training data or whatever) is far more able to pump out code with React Native than their own frameworks. This makes it the right choice for them. Not for the user, but you can't have everything.
I don't have any inside information; I'm running with the hypothetical.
It has been React before ChatGPT.
I've got nothing then.
OP article amplifies it with:
>No, Windows Start isn’t built on React. No part of the start menu actually uses React.
But then
>This is the Windows 11 start menu. See that Recommended section at the bottom of it? That is built with React Native for Windows.
Its not just the headline its the content of the article.
What it should have done is focused on this claim:
>Microsoft is also vowing to use its native Windows UI framework, WinUI, in more areas of the system
Because like they said, React Native is calling WinUI.
But trying to split the React/Native hair is honestly just tiring. Its like saying you dont drink Coke, and then downing a full glass of Coke zero. "Oh but what I meant is that it doesn't call any sugar dependencies at all" is just weird. Just say you don't drink Sugar.
Exactly this. And it is on a portion of the Start menu that can be fully disabled. Heck, my start menu looks like the Windows 10 start menu (yes, this is OOTB) as I wasn't fond of the "new" look of the Windows 11 start menu.
But we'll always hear "it's React!". Like most things, the masses must feed on the Internet outrage without critical thought.
> And it is on a portion of the Start menu that can be fully disabled.
I mean, with tons of effort and config Windows can be turned into a usable OS. Needing to do all that is a huge part of the problem.
If you deem a couple of clicks "tons of effort", don't touch macOS!
It may not involve a webview, but from what I can tell it definitely still is running JavaScript.
Either way it doesn't matter. As someone who has used Windows in a significant way since the 90s, the taskbar and start menu are a buggy mess. The new design is awful, I just want a list of my programs like before.
The recommended section using React Native is honestly more strange and confusing than if they had just used React for the whole thing. It doesn't seem like a particularly complex UI element, it would be easier to just develop it using the already used native APIs.
I understand there is a position of "we've always done it this way, so we keep doing it this way" And. "we need to move with the times and use new tech!".
But surely there is some happy middle ground that doesn't end up with a entire js runtime in the damn start menu?
I'm a fairly casual dev compared to faang folk, but surely even they realised this was an awful choice?
Title is pretty bad. It should be “Yes Windows Start Uses React but Not the Way You or I Do As Web Developers.”
Added a footnote. I still chock it up to bad naming. React as most people know it could really be considered React for Web.
Fatal error by the author: They’re right, it doesn’t use React in the way that everyone actually means and criticises. It still technically uses React though, so—as is already evident—you still get the worst of the worst, bad-faith arguers saying “WELL ACKSHULLY…”
I don’t think it’s any more bad faith than the author’s title.
> This is the Windows 11 start menu. See that Recommended section at the bottom of it? That is built with React Native for Windows. No, that is not a full JavaScript framework in your start menu. There’s no web view / browser running gobbling up your resources. It’s React Native for Windows which is a flavor of React Native that directly calls Windows APIs including, you guessed it, WinUI 3.
I would still say that means Windows Start uses React, frankly.
React Native, absolutely - as with Office 365, using WinUI 3 as the underlying UI layer.
Running a full javascript framework in a javascript runtime.
When did office start using React Native? Office has been around well before the creation of javascript, let alone react.
I'm not sure that it uses React Native, but modern add-ins for Office are JS, so any injected modern add-in will be using JS rather than COM/C/C++. This gave add-ins portability between all supported Office platforms, increased security, and made administration much easier.
The internet tends to flatten everything into “it's React”.
React Native for Windows is quite different from embedding a web React app in the OS shell. It’s essentially a renderer that maps React components to native WinUI controls.
So saying “Windows Start is written in React” is a bit like saying an iOS app built with SwiftUI is “written in HTML”.
A battle tank doesn't have diesel because it's disabled.
Talk about a misleading title XD
nit: the embedded screenshot of the Windows 11 Start Menu is low res enough that seeing/reading the Recommended section is challenging without squinting!
Agreed. Swapped it out. Still not great proportions, but at least it's not blurry.
I get to see this right when I just upgraded VSCode.
https://x.com/0xAkuKun/status/2036235161956917593
VSCode had an instant search for 10 years. Now it's broken suddenly for the first time ever. Can't search anything. Back to greping like a cave man.
sigh
The weirdest thing about this (which is frankly bizarre) is Microsoft emphatically shilling React Native for MacOS[1] usage (???). Like, wtf? Why? Not only is it embarassing for MS to be using another competing company's (Facebook's) UI layer when they're, you know, an operating system company. But they're also pushing it for competing operating systems. What idiotic PM signed off on this? How in the world does Microsoft benefit out of promulgating Facebook's technology?
[1] https://microsoft.github.io/react-native-macos/docs/intro
Windows has like 5 UI kits concurrently built into it. It very well be that one UI kit PM is promoting react native to attack another UI kit team.
Microsoft decided to move to be a cloud services company instead of an operating system company. The operating system is merely a convenient means to acquiring new service subscriptions.
I mean, you could say the same thing about Apple, but they're extremely protective of their ecosystem and native capabilities.
Apple is a hardware company and likes to have control over the whole user experience. Microsoft doesn’t care about the experience as long as they can sell subscriptions, and doesn’t care much about hardware either.
[dead]
It’s garbage either way.
On that note, do we have an open standard for OS implementations? Where the fuck is our modern scratch made OS written in Rust?
It’s about time we topple this shitty triopoly.
So you're asking for a bug-filled, unstable, feature-less OS?
Because that's what you get when you start from scratch.
Go build it.
The amount of misinformation that spreads from a single tweet or blog post is insane. Someone says "Windows uses React" and suddenly it's gospel. The actual XAML Islands explanation makes way more sense from a performance standpoint. Microsoft has been using XAML for their UI framework for years, why would they switch to React for something as performance-critical as the Start menu?