Discussion
No, Windows Start does not use React
protocolture: >Windows Start does not use ReactOk>This is the part of the Windows Start that uses React.Ok
mintplant: > 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.
nightski: 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.
daviddever23box: React Native, absolutely - as with Office 365, using WinUI 3 as the underlying UI layer.
nu11ptr: 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.
simonw: TIL the Windows Start menu uses React (Native).
UqWBcuFx6NV4r: 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…”
djsavvy: Talk about a misleading title XD
meindnoch: >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.
p1necone: 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.
brokencode: 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?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.
uwais12: 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?
madeofpalk: > 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.
p_ing: 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?
madeofpalk: 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.
p_ing: You have inside knowledge of why React Native was chosen?
RS-232: 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.
p_ing: So you're asking for a bug-filled, unstable, feature-less OS?Because that's what you get when you start from scratch.
p1necone: Go build it.
kristianp: When did office start using React Native? Office has been around well before the creation of javascript, let alone react.
p_ing: 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.
MattGaiser: > 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.
p_ing: If you deem a couple of clicks "tons of effort", don't touch macOS!
dvt: 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 company'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?[1] https://microsoft.github.io/react-native-macos/docs/intro
layer8: 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.
layer8: The critique is exactly that they apparently felt that React Native was the best choice for such a component.
p_ing: 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.
scottlamb: > 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.
p_ing: 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.
madeofpalk: 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?
__jonas: 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?
layer8: 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.
dvt: I mean, you could say the same thing about Apple, but they're extremely protective of their ecosystem and native capabilities.
protocolture: 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 systemBecause 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.
nickvec: nit: the embedded screenshot of the Windows 11 Start Menu is low res enough that seeing/reading the Recommended section is challenging without squinting!
layer8: 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.
SSLy: On slow enough Azure VDI host you could briefly see no-css language string when the start menu was still preparing for actual usage
scottlamb: 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.