Windows 11's Start menu was built using React – now switching to native WinUI

54 points
1/21/1970
2 days ago
by steviey19

Comments


pjmlp

People stop believing in anything related to WinUI coming from Microsoft marketing machine.

Besides examples like this one.

The amount of issues on Github across all WinUI related tools, keeps increasing all over the place, there is almost no visible activity, the community calls have been a disaster with Q&A being ignored, team rotation, whatever.

Native AOT still cannot do what .NET Native did (there is a CsWinRT 3.0 that supposedly is going to fix that). Additionally it requires all classes to be marked partial classes.

C++/CX was killed, replaced by C++/WinRT without any Visual Studio tooling, meaning using it is similar to using ATL during the Visual C++ 6.0 days. The experience promised at CppCon 2017 never came to be.

Additionally hidden in a comment thread on its Github repo, the original devs that are now working on windows-rs, mention that C++/WinRT is in maintenance mode, it won't be further developed.

Ah, and they are open sourcing WinUI, guess how many devs are still left to work on this.

Really, from someone that used to advocate using WinRT back in the Windows 8.x/10 days, stay away from any technology that is somehow related to WinUI.

Microsoft themselves can do whatever they feel like with WinUI, it comes with the job, the rest of us, better use Win32, Forms, WPF, Avalonia, Qt,...

EDIT: I forgot to mention in its present state, the application identity and COM reference counting required by WinUI, makes the "blazing fast C++" components actually run slower than typical .NET applications. The irony from the folks that kind of sabotaged Longhorn efforts, and went ahead redoing the ideas in COM.

2 days ago

nubinetwork

Still waiting for them to finish the control panels, oops, I mean settings windows...

a day ago

chrisldgk

People tend to forget that React != React-DOM (i.e. HTML).

React is just a framework for declaratively defining components and reactivity, the end result can be whatever you want. That’s what react-native is for mobile apps, and as another commenter pointed out, in this case it was using React Native for Windows[1], which apparently calls native Windows APIs in the background.

I like to jump on the MS hate train as much as the next guy, but React itself is not the reason the start menu is bad.

[1] https://microsoft.github.io/react-native-windows/

a day ago

sureglymop

Agreed and it's an important distinction to bring up. There are some pretty cool projects that use react like that, e.g., vicinae [0]. And one can implement a different renderer for react, here is a tui renderer [1].

0: https://www.vicinae.com/ 1: https://github.com/vadimdemedes/ink

a day ago

steviey19

Buried in this announcement about Windows 11 improvements is a fascinating admission: the Windows 11 Start menu has been built using React this entire time. Microsoft is now migrating it to their native WinUI3 framework to improve performance and reduce interaction latency.

This explains a lot about why the Start menu has felt sluggish compared to Windows 10.

The React → WinUI migration is the most technically interesting detail imo.

2 days ago

contextfree

No, it was built using WinUI2/UWP XAML. But one section ("Recommended") uses React Native (which on Windows is built on top of WinUI2/UWP XAML)

5 hours ago

stephenr

It's been known for a while - at least 2024 - that its react.

2 days ago

alsetmusic

Yeah, I know about that and I'm a Mac / Linux guy.

2 days ago

graemep

Its in the headline here, its buried in the article.

Its seems a very strange decision to write it in React in the first place.

Windows 11 sounds terrible. Flicker in the file manager? How does that happen?

a day ago

wodenokoto

Did the headline get updated since this comment? At the time of writing this reply, the headlines is “windows 11’s start menu was built using React …”, which I agree is super interesting.

2 days ago

sunaookami

It has not been built with React, the article is false and it's a typical statement meant to make you outraged. The "recommended" section in the start menu was built using React Native and renders into XAML, so as natve as it can get. WinUI changes nothing about this. It's very tiresome having to constantly debunk this because "journalists" are chasing cheap clicks instead of doing their job.

a day ago

pjmlp

Mostly because the C++/WinRT tooling is non existent, after killing the C++/CX Visual Studio XAML integration, C++ Builder like, thus most C++ teams reach out to React Native instead, as Microsoft's QML.

Same happened to the XBox dashboard.

13 hours ago

userbinator

XAML I would not consider native; it's an XML-infested .NET-originated monstrosity. Win32 is native.

a day ago

pjmlp

Still way better than dealing with div soup turned into UI via magic CSS incantations.

And the CSS grid system was based on XAML grid.

13 hours ago

zuhsetaqi

Do you have a source for that?

a day ago

sunaookami

8 hours ago

evanjrowley

This comment may have been flagged by the anti-AI spam measures due to use of the arrow symbol.

2 days ago

userbinator

WinUI is still a bloated pig compared to Win32.

If MS really wants its users back, many of which have left for Linux and Mac, it should seriously consider going back to the Win7 era UI, or at least restore the Windows Classic theme.

2 days ago

timnetworks

Is there a shell replacement for windows these days? I don't need two right-click menus and whatever it is they did with the task tray anyway.

5 hours ago

pathartl

It's not React. A small part (recommended apps) was built using React Native for Windows, which is not React Native but an offshoot that uses native Windows APIs.

2 days ago

ksec

This is interesting timing.

Macbook Neo announced. It has been known a low cost MacBook will come, but I dont think anyone realistically think it was really going to be $599. And even $499 for Education. Now that it is real, how many new macOS user will Apple gain? Cooperate, Education and Business Sector have longed wanted an "affordable" Mac. There are plenty of organisations that are currently paying $499 or $599 for PC and would happily paid $699 for an Apple solution. Unforuntaly that product just didn't exist. Now it is here it will hit the M$ user most.

Unless Apple did something really stupid I could see Neo easily attract an additional 100M PC user across to the Mac.

a day ago

greggsy

Timing isn’t an accident. Within weeks of the M1 stealing headlines, the premature W11 released to great fanfare.

This mea culpa is very refreshing though, along with the admission that they went overboard with CoPilot.

19 hours ago

zeroc8

That has been Microsoft's gameplan for years. While Apple delivers, Microsoft promises it will deliver soon. And then it never happens.

14 hours ago

pjmlp

How is Apple AI delivery going?

Especially everything that was shown at WWDC 2024?

13 hours ago

Panzerschrek

Why it was necessary to rewrite start menu in React at all? Why rewriting what works fine?

2 days ago

userbinator

Developers trying to justify their employment and pad their resumes.

2 days ago

oreally

Resume-driven development making people justify their jobs.

2 days ago

replooda

Come on. Are you an employed developer? If so, even if you have that much power over the flagship product of the company, that you can use it to pad your résumé, do you think the same happens at Microsoft? By all means, the bugs may speak of skill issues (or may not: there's also crunching, mandated AI... Who knows), but the Cloud-first, push-ads, force-account etc. enshittification is the implementation of a vision I doubt was collectively composed by devs, let alone a single dev.

2 days ago

SR2Z

The ads pushing would be just as possible with a fully native start menu.

Using React for it was probably done since it's just objectively easier and faster to tweak a React app than native components (see various folks complaining about WinUI).

2 days ago

replooda

I was addressing the concept of developers taking it upon themselves to rewrite the menu (in whatever; React is beside the point) in order not to seem redundant and to pad their résumés.

a day ago

wolfi1

my guess is many junior developers without guidance and perhaps a little vibe coding. could be that these new developers are not comfortable anymore with C++ and MFC so they use what they learned in their courses directed at web standards

a day ago

tester756

Sounds like bullshit, I'd rather bet that Microsoft wanted to make some Cloud OS, web friendly thing and expected it to be as successful as Visual Studio Code

Also, I don't think that integrating react app into Windows is trivial

a day ago

bhhaskin

My best guess is ads.

2 days ago

stevetron

I don't know anything about React. I used to do everything in C++, and I was really happy when I could do embedded projects in C instead of assembler.

With that said, I really like C#, even if I can't stand some of the directions it's grown into, and I think that the start menu could have been written in C#, WinForms, and have been far less troublesome.

a day ago

victor106

I was hopeful for M$FT after they seemed to be ahead in AI compared to other large software co.

Since then they have largely lost the AI race (you can argue they were never in it as they never had a SOTA model and are piggy backing off OpenAI).

Now I read that Win11 is based on React, even a junior developer can tell you that running React natively on any platform will always suck.

a day ago

ralphc

The big headline for our household will be to pause updates as long as needed. My wife is a CPA and having to manually delay and delay updates during the end of tax season(s) (March for corporates, April for personal, then again six months later) is an extra, unnecessary stress during those times for her.

a day ago

mono442

Not allowing to move the taskbar to a side was inconsiderate to begin with. Most screens are 16:9 so the vertical space is at premium while the horizontal space is often wasted anyway.

a day ago

trimethylpurine

Coca Cola famously improved its position when New Coke flopped and it reintroduced the original flavor as "Coca Cola Classic."

If you can't make it better, make it worse, it seems.

2 days ago

throwaway270925

I'd love a "Windows Classic" Release!

a day ago

khelavastr

Lords be praised. Microsoft is bringing back native performance .

2 days ago

flohofwoe

I fully expect that the "native" rewrite will be substantially slower than the current version ;) Software performance (or lack thereof) is mostly not a technical problem (e.g. the technical part of software performance is trivial to solve), but organizational.

a day ago

idiotsecant

How does this happen? How do you build a fundamental OS control in react?

2 days ago

pjmlp

Plenty of stuff nowadays uses Webview2 across Windows.

Not only has Project Reunion been a disaster (moving UWP regular Win32), apparently Microsoft new employees lack Windows experience, being raised in Chromebooks and Macs, apparently they aren't getting the trainings they should.

You can go watch recordings of the community calls, and see puzzled faces when asked about Windows capabilities not yet supported on WinUI/WinAppSDK.

2 days ago

userbinator

apparently Microsoft new employees lack Windows experience, being raised in Chromebooks and Macs, apparently they aren't getting the trainings they should.

They should be given Petzold's famous book on the subject, published by Microsoft Press itself.

2 days ago

wolfi1

considering that they have still Russinovich and Raymond Chen in their midst it shouldn't be too hard to have a two week boot camp for those who write programs for the OS

a day ago

pjmlp

Russinovich nowadays is busy with Azure, AI, and overseeing the Rust takeover at Azure, where 60% of the server load runs on Azure Linux.

Even Dave Cutler seems having some Azure Linux fun, with repurposed XBox Cloud racks for AI research, as per his Dave Garage interview.

a day ago

pjmlp

Yeah, certainly.

a day ago

Traubenfuchs

No one left who can use whatever half deprecated native actually-not-that-native windows ui framework is currently undead state of the art and not enough examples in the llm‘s to vibe code it.

That leaves „web technologies“.

2 days ago

solid_fuel

This is what I'm wondering. How dysfunctional is microsoft that they shipped a react-based start menu? It reads like satire, "Windows 11 is so bad that even microsoft doesn't use native controls".

2 days ago

userbinator

MS also made one of the most hated IM and audiovisual meeting applications with web tech, replacing a previously (not great but much better) native one: Teams.

2 days ago

idiotsecant

Teams was pretty bad when it released, but it's decent now I think.

a day ago

mft_

It’s still randomly really slow (like, individual controls drawing one by one slow) on my recently-refreshed corporate laptop; and opening Teams was the last action before the entire Windows installation my personal laptop was nuked… but yes, it’s basically usable and reliable for video calls and team chat these days.

a day ago

pjmlp

Still no threading support.

13 hours ago

drysart

It's not React. It's React Native. React Native and React are about as similar as JavaScript and Java.

React Native is a way of orchestrating a UI comprised of native controls.

2 days ago

flohofwoe

It's still baffling, since the core idea of React only makes sense as a workaround for limitations of the browser DOM. Wrapping much more flexible 'native' widget frameworks with a React layer is pure cargo culting (same with SwiftUI).

a day ago

mft_

It tried to solve cross-platform development. That’s a legitimate issue.

In retrospect, calling it React probably caused more problems than it brought benefits, and makes little sense - like Java vs JavaScript.

a day ago

myvoiceismypass

But React Native looks like plain React. Syntax the same in both cases. Java and Javascript are wholly different languages.

7 hours ago

solid_fuel

ok, granted, but microsoft already builds a first party way to orchestrate a UI comprised of native controls. Why do they invest so much effort into WinUI and C# if they're just going to use a 3rd party solution? Presumably the windows 11 start menu does not need to run on macOS or Linux.

20 hours ago

pjmlp

Because it uses C++, and C++/WinRT tooling for UI development isn't there.

The team that killed C++/CX, said it isn't their problem that there aren't Visual Studio integrations like C++/CX, and eventually left C++/WinRT in maintenance and nowadays is responsible for windows-rs repo. Better not expect too much from that repo as well.

Welcome to Microsoft politics.

13 hours ago

gjvc

making it nice and fast; hello. it was nice and fast on windows 2000 and they've been fucking it up ever since.

a day ago

BoredPositron

Got downvoted to hell just mentioning that the start menu was an react app in the windows quality thread yesterday...

a day ago

contextfree

Because it's not true

5 hours ago