No, Windows Start does not use React
36 points by pathartl 15 hours ago | 57 comments
  • mintplant 15 hours ago |
    > 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.

    • daviddever23box 15 hours ago |
      React Native, absolutely - as with Office 365, using WinUI 3 as the underlying UI layer.
      • madeofpalk 15 hours ago |
        Running a full javascript framework in a javascript runtime.
      • kristianp 14 hours ago |
        When did office start using React Native? Office has been around well before the creation of javascript, let alone react.
        • p_ing 14 hours ago |
          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.
  • protocolture 15 hours ago |
    >Windows Start does not use React

    Ok

    >This is the part of the Windows Start that uses React.

    Ok

    • p1necone 15 hours ago |
      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.

      • madeofpalk 15 hours ago |
        > 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 14 hours ago |
          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 14 hours ago |
            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 14 hours ago |
              You have inside knowledge of why React Native was chosen?
          • layer8 14 hours ago |
            The critique is exactly that they apparently felt that React Native was the best choice for such a component.
            • p_ing 14 hours ago |
              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.

              • layer8 14 hours ago |
                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.
              • madeofpalk 14 hours ago |
                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?
                • scottlamb 13 hours ago |
                  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.

                  • lostmsu 13 hours ago |
                    It has been React before ChatGPT.
                    • scottlamb 13 hours ago |
                      I've got nothing then.
          • scottlamb 14 hours ago |
            > 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 14 hours ago |
        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 14 hours ago |
          > 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 14 hours ago |
            If you deem a couple of clicks "tons of effort", don't touch macOS!
            • franktankbank 3 hours ago |
              Exactly, use linux instead. Windows sucks donkey dicks, its hilarious how hard you defend it.
      • protocolture 14 hours ago |
        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.

    • brokencode 14 hours ago |
      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.

      • Fire-Dragon-DoL 12 hours ago |
        I mean, it looks super complicated to me by now. Why on earth they did it, that's a different story
  • meindnoch 15 hours ago |
    >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.

    • __jonas 14 hours ago |
      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?
    • SSLy 14 hours ago |
      On slow enough Azure VDI host you could briefly see no-css language string when the start menu was still preparing for actual usage
      • franktankbank 11 hours ago |
        lol
    • pathartl 13 hours ago |
      Yep, oversimplification on my part. I'll make some edits.
      • scottlamb 12 hours ago |
        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".

  • djsavvy 15 hours ago |
    Talk about a misleading title XD
  • UqWBcuFx6NV4r 15 hours ago |
    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…”
    • devmor 15 hours ago |
      I don’t think it’s any more bad faith than the author’s title.
  • nu11ptr 15 hours ago |
    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.

    • pathartl 13 hours ago |
      Added some footnotes to add clarification
  • nightski 15 hours ago |
    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.

  • aufhebung 15 hours ago |
    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.
  • taspeotis 15 hours ago |
    Title is pretty bad. It should be “Yes Windows Start Uses React but Not the Way You or I Do As Web Developers.”
    • pathartl 13 hours ago |
      Added a footnote. I still chock it up to bad naming. React as most people know it could really be considered React for Web.
  • RS-232 14 hours ago |
    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.

    • p1necone 14 hours ago |
      Go build it.
    • p_ing 14 hours ago |
      So you're asking for a bug-filled, unstable, feature-less OS?

      Because that's what you get when you start from scratch.

  • uwais12 14 hours ago |
    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?
  • dvt 14 hours ago |
    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

    • layer8 14 hours ago |
      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.
      • dvt 14 hours ago |
        I mean, you could say the same thing about Apple, but they're extremely protective of their ecosystem and native capabilities.
        • layer8 14 hours ago |
          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.
    • chabska 14 hours ago |
      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.
  • hparadiz 14 hours ago |
    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

  • nickvec 14 hours ago |
    nit: the embedded screenshot of the Windows 11 Start Menu is low res enough that seeing/reading the Recommended section is challenging without squinting!
    • pathartl 13 hours ago |
      Agreed. Swapped it out. Still not great proportions, but at least it's not blurry.
  • opengrass 13 hours ago |
    A battle tank doesn't have diesel because it's disabled.
  • ipanemax 11 hours ago |
    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”.

  • Incipient 8 hours ago |
    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?

  • rsynnott an hour ago |
    > No, Windows Start did not use React

    [except for the bit that does]