I am worried about the future of native UI technologies on Windows. Traditionally at least the developers of operating systems have eaten their own dogfood and have at least tried to implement well-performing & visually consistent native applications to serve as an example to others. Windows 11 has largely done the opposite. Windows has had minimal but perfectly functional native email and calendar apps at least since Windows 10 (could have been in 8, never used that). Windows 11 originally shipped with those apps, but they were removed in a later update and replaced with laggy webview wrappers that take seconds to start.
From the WinUI community calls, I would assert all new employees have zero Windows experience and management doesn't care to give them proper skills.
Too many questions that any Windows developer would know why the question was being asked, where they either couldn't answer or had puzzled looks on why the questions were being asked in first place.
That is also a reason why now there are Webview2 instances all over the place on Windows 11.
This was already a thing 20 years ago. Students weren’t have any experience with windows, it was something companies used, and today even that has gone away.
I think web views do make sense in situations where you’re presenting lots of remote content that may frequently change. After all that’s what the web is, and store content, and to an extent emails many of which are HTML anyway, are reasonable candidates.
yeah in that regard it seems that apple tastefully does so on apps where there's mostly remote roundtrips already like the app store or music app, so I agree that there makes sense to reuse the web infra
but swift ui apps are great and fast cause they're not electron monsters!
thankfully you can use safari webkit inside them, but that doesnt work cross-platform
SwiftUI apps are not great and they're not fast. A lot of Apple's new apps are considered rather poor. Theo has a video where some devs switched to a webview because the text rendering performed better!
The issue I see with Windows 11's UI is they seem to focus too much on pushing new apps / features and not enough focus on catching up some of the older tools within Windows. Take for example the Control Panel which is a reskinned version of the same one that shipped with Windows 7. And I'm sure there are tools buried within the OS that probably date back to the 2000/XP days.
Windows 11 looks great if you just look at the press photos and stay a "very happy path" while using it but as soon as you start digging deeper you realize it's like that meme of Homer Simpson with clips on his back.
If you understood the power struggles within Microsoft and the cut throat office politics, you’d understand. Orgs are fighting orgs trying to over throw one another.
I won't be surprised if there is an effort to rewrite MSO in something like Dart and WASM, and make it independent from any native toolkits altogether. Yes, to reproduce all of the Excel power, and make it available everywhere as a premium plan of O365.
Then Windows could pull a ChromeOS. The only place where a native UI is really needed is the lock / login screen; a tiny subset of any current UI toolkit would suffice.
Office is a completely separate team divorced from Windows proper. Unless Office deemed it wise to rewrite their UI, they're not going to do so (and it's a frankenstein of a Win32 UI).
Office on Windows relies heavily on COM and other Win32-only libraries to function.
I can't think of a valid reason to rewrite Office to that extent. They already have Office for the web and Mac Office; while not identical in features, they're often good enough outside of BI scenarios or highly complex Excel work.
Outlook is the lone exception where that team decided to have Outlook for the web, Windows Outlook, and Mac Outlook be identical, so those are getting their rewrites with removal of Win32-specific features where applicable.
No, MSO should not be rewritten. It might be adapted to a more universal UI toolkit, if Win32 UI becomes problematic as is. COM is also not going to go anywhere, but I wonder if WASM-compiled components and native code-compiled components could interact via DCOM over the internet.
Before Project Reunion came to be, Office team was starting to adopt UWP.
See BUILD recordings from 2018, I think, where they demo the new UWP controls contributed by the team, similarly to what happened before with the ribbon on Windows 7.
I would vouch they got as happy as the rest of us.
> Outlook is the lone exception where that team decided to have Outlook for the web, Windows Outlook, and Mac Outlook be identical, so those are getting their rewrites with removal of Win32-specific features where applicable.
I wish they didn't. Outlook on macOS is abysmal nowadays and I still find myself resorting to the legacy view just to change some settings that both iterations can read but only one exposes.
I significantly prefer using Thunderbird or the web views for Gmail and Zoho Mail over any version of Outlook. Is the integration across O365 apps nice? Sure, but the platforms themselves are miserable to use.
In a similar vein, I was cautiously optimistic about Teams V2 for unifying the client. But then they completely dropped the Linux client for their PWA which does not have feature parity with the "native" platforms and has a significantly worse UX.
> We are being thoughtful about resourcing. This effort is happening alongside other critical responsibilities like security, platform stability, and support for existing products. Our current focus is on foundational work that unlocks value for contributors and increase transparency. We are aligning this work with Microsoft’s broader business priorities to ensure long-term support and impact.
I don't sense any benevolence in their words. They are just pulling off their resources and dumping the framework on the public, hoping passionate losers will contribute.
This is unduly meanspirited. Your passion projects are not even considered to probably the vast majority of the world; that doesn't make you a loser.
I have zero interest in the Win11 UI, and am even on board with the cynical view that this is purely a bean counter cost savings for MS rather than some benevolent outreach.
But I respect the people that take this on and want to keep it going.
Thanks for calling it out. I get OPs passionate disdain for Microsoft but one must remember that the world is built on contributions from such people. Take the whole Linux and GNU ecosystem for example. We’d be lost without them.
Maybe the biggest beneficiary will be AI/LLMs - which will become way better at creating Windows UX after this.
> Your passion projects are not even considered to probably the vast majority of the world; that doesn't make you a loser.
Not OP but I understood this as "contributing for free to a project owned by a corporation worth more money than you could realistically spend in a lifetime is what makes you a loser".
That is the self-interested feeling that Open Source preys on.
And I do mean "prey" with a negative connotation. One of the biggest perks of Open Source from a company's perspective is that you can get developers to work on your project for free without paying them. However, those same developers have very little say in the direction of your product, and any forking of your project would have to compete the economies of scale that come from being a company. The only downside is that you have to worry about being out-scaled by a bigger company, as the developers of ElasticSearch, Redis, Docker, and others found out first-hand.
This is distinct from Free Software, which has different dynamics that are much more friendly to mutual benefit, collaboration, and forking, especially if there's no CLA that pools all of the copyright into one corporate or non-profit entity. But then again, this sort of Free Software moralizing is expressly the reason why Open Source was created as an alternative in the first place. The OSI even used to admit as such on their website:
As has the rest of the world, and we will just put it on the list of UI frameworks Microsoft did not completly implement, fully support or considering "the default".
So we stay stuck with the status quo: There's no official UI for Windows, still.
More seriously, a desktop UI toolkit is hardly a moat by now, especially a Windows toolkit, Windows having 3-4 very different look-and-feels mixed and shipped with the official distribution.
OTOH security and stability are things that Windows critically depend on to stay on the laptops and desktops in medical, governmental, and financial institutions, and on devices of executives.
This feels like Windows itself is no longer producing enough growth for Microsoft relative to its other efforts. Even the enterprise sales lock-in isn't compelling enough for the cloud/AI-centric future Microsoft envisions. So Microsoft is slowly pulling resources that it can instead invest into Azure and AI and other high-growth business units.
I don't watch Windows too closely. Have there been any other signals of waning investment into Windows? Has Nadella or the other leadership admitted to this?
Hasn't Microsoft also been pulling back from Xbox? IIRC, haven't they been trying to consolidate and use gaming to lionize Windows as a platform? After spending billions on multiple AAA studios? That would seem counter to a Windows pullback strategy. Is this a case of the left hand not talking to the right hand?
> Have there been any other signals of waning investment into Windows?
Wasn't there a story some while back about them crawling the web for PWAs and putting them on the Microsoft Store (or is it Windows store?) to make it into less of a ghost town? And if you go to their official website, browsing vaguely in the direction of UI development, you will see them advertising PWAs as first-class citizens of the Windows ecosystem. I also vaguely remember that Windows+Edge offers special APIs to PWAs for things like file system access and so forth that are unparalleled on other platforms.
I take this push for PWAs (combined with their own lack of dogfooding -- Office is not written with Win UI) as them basically throwing in the towel on Windows-native desktop software (outside of games, maybe).
But, to be fair, native desktop development has seen a lack of investment on all desktop platforms. JavaFX is a ghost town too.
All of that could change, depending on what happens next with Chrome, Bing, and Mozilla. -- The future of each of those seems to be hanging in the balance at the moment.
The web could become a mere implementation detail of the Google monopoly, rather than the open thing it is today. Couple that with a government-level push for digital sovereignty in the E.U. and other places (certainly China). Then, maybe, you will see renewed interest in desktop GUI apps.
On a side note: I think it's amazing what has happened in the open-source space with Rust-based UI frameworks (iced, egui, slint) and COSMIC. The future for cross-platform desktop UI development hasn't looked so bright, maybe since the introduction of Java Swing (was that in the early 00s?)
> Qt and VCL/FireMonkey are pretty much alive, as 3rd party .NET like Avalonia and Uno.
Last time I looked into Uno, it seemed to me more like a mobile-first play (similar to Flutter), but maybe I missed something there.
Qt is still joined at the hips with C++, and I'm finding it hard to imagine that the next generation of developers will go in for C++ over alternatives like Rust. There is a QML/JavaScript story. But why, on earth, would you go there, if history hasn't forced your hand, as it did with the Web.
I hear good things about Avalonia, but: Why throw out the baby with the bathwater and build something "open" within a monopolist's walled garden.
> Apple is also doing just fine.
But "lack of investment" is still not entirely improper as a characterization of how they prioritize desktop versus mobile.
...the amout of code we've been writing has increased with the progress of technology, just comparing what it was like to write desktop UIs with Delphi in the 90s versus the amount of code it takes for an equivalent app in 2025. Low-code and vibecoded software from the 2020s are going to be the unemployment insurance for all those greybeards who will still know how to code in the 2030s :-)
That’s wishful thinking. Just because things haven’t changed in the past doesn’t mean it won’t change in the future.
I don’t doubt that the amount of code will not reduce, it’ll just be easier and easier to get AI to fix it.
We are still less than two years into widespread use of this technology, and it’s surprising how good it is.
I am a ‘greybeard’ compiler guy and modern LLMs fix compiler bugs better than me, to a large extent. And it keeps slightly getting better every few weeks.
As compiler guy, how do you see direct machine code generation?
I firmly believe having LLMs generate code for current languages is a transition step, just like Assembly devs had to be convinced optimising compilers were generating the same kind of code they would write themselves.
> I think it's amazing what has happened in the open-source space with Rust-based UI frameworks (iced, egui, slint) and COSMIC
Do you mean it is amazing how poor is an experience and how many features, widgets and controls they lack when compared with something like FPC/Lazarus and Qt?
Rust is a nice thing, but its UI ecosystem simply cannot even compare.
Usually I get why companies release their UI frameworks. I've strongly considered using Atlassian's and AWS's frameworks in the past to build web apps because if it's good enough for Jira/AWS, it's probably good enough for my B2B saas app.
But I personally don't know why anyone would reach for this framework. Maybe if you're building a Windows app and you want a very consistent look and for your app to feel "native", but aren't there better options out there for doing this already?
No one in Windows development community cares about WinUI, other than those with sunken costs that bought into the WinRT/UWP dream and now are stuck with a dead technology.
Too many burned bridges since Windows 8 came out.
If anything, this is Microsoft confirmation that they are unwilling to fix all the broken issues, and hoping the community will somehow still care.
Very true. We just developed a brand new LOB desktop app and settled on sticking with WPF. WinUI has been dead for years imo.
On a side note, I still love WPF after working in it for 10 years. Maybe it's just familiarity, and it's a little verbose at times, but man it's a great framework when you know that you're doing.
We also settled on WPF for a new LOB Desktop application, this validates the decision. If you combine WPF with the CommunityToolkit MVVM, it’s a very nice framework to develop with.
Honestly at this point who would seriously use any Microsoft UI framework? They've abandoned 100% of their previous UI frameworks unfinished when they get distracted by a new, shinier framework.
Why use a busted incomplete framework missing basic features when there's entire ecosystems of open source cross-platform frameworks being actively maintained and which actually have all the features you need?
Really this is just another UWP destined to be forgotten and scorned.
I kind of wish Microsoft would just continue development of WPF. I've used it for years for various projects, and there is a learning curve but I've since enjoyed working with it. XAML, data bindings, ViewModels... all of it I actually like. But, WPF needs a few improvements to really make it perfect. I tried several of Microsoft's newer frameworks and the open source ones (Avalonia, Uno), but I either couldn't get the sample projects to even build successfully on my machine, or I never got comfortable with development workflow, and went back to what I know.
My big idea to fix WPF is to rebuild the data binding system to use the .NET compile-time code generation feature instead of run-time reflection. I think that would solve a lot of problems. For one, projects could do an actual AOT build of their applications (right now, you either need to rely on an installed .NET runtime or "publish" the project with a lot of .NET libraries included for self-extract, bloating the final file size). Code generation would probably improve performance quite a bit too, maybe open up the possibility to compile for cross-platform, introduce type safety for XAML bindings (rather than getting vague runtime binding errors), remove the need for so much class scaffolding, etc... I've thought about starting an open source project to do it myself, but seems like a pretty big task and I would essentially be starting a project to help with my other project which I already don't have enough time to work on...
Your second paragraph sounds like you're describing Avalonia. Avalonia has AOT, compile-time binding errors and cross-platform support. Maybe there have been some updates since you last tried it? I'm not very familiar with Avalonia or WPF though so maybe there's more to it than that.
Thanks, yes I'll probably have to give it another try some day. I might be confusing Avalonia and Uno, but I think I first attempted it a couple years ago, and then again last year. I remember spending a whole weekend trying to get it running but wasn't having success. Also, I was a bit turned off by how heavy the development environment was. I had to download and install a tool, then that installed more build tools and packages, and then there was also a "recommended" VS Code extension. With WPF, I've gotten used to writing XAML without a designer, so I can get by with just VSCode, the C# extension, and the .NET CLI.
I already lost count how many UI frameworks are in windows. It looks like complete chaos and mess.
I really wonder what they expect from open-sourcing it. Just to pretend how open they are? Or is there any real benefit to developers who target windows?
WinUI is an evolution of UWP which is an evolution of WinRT. WinUI has been around for years.
MAUI is not exactly a competing product and is more about enabling cross platform UI development. Different intent.
WinUI is actually ok tech. It’s evolved over the years through a few iterations, now on WinUI 3.
Im mostly with you though. Until they rebuild the entire OS in it, including all of the administrative controls and tools, I don’t trust the longevity.
They already do, though. The big UI refresh in Win10 is all XAML, and the new Win11 taskbar (the one we all hate) is now a totally normal XAML app.
WinUI 3's big changes (to get a 3.0 version number) is not with the XAML stack itself, but its new ability to be called by unmanaged apps as a normal UI toolkit, so it can finally be used by all apps. No more using Shell UI like we're writing Win 3.1 apps.
And yes, some stuff in Win11 still isn't WinUI, which is kind of annoying, but some of those dialogs hidden away in Windows are at least 20 years old, and probably would need to be entirely rewritten, not merely have their UI's updated.
Also, fun fact: The Win8/10 taskbar's code predates Avalon (the prototype/codename for WPF), and trying to change/fix it at all usually ended up breaking it. It's one of the few binaries on Windows that would not be recompiled to build a new release image in fear of breaking it. Rewriting the taskbar made sense, GETTING RID OF SMALL MODE DID NOT, GODDAMNIT MICROSOFT.
Lets not forget that after five years Project Reunion was announced, WinUI 3.0 is yet to achieve feature parity with the Visual Studio experience developing C# or C++ applications, or UWP components features.
The WinUI map component is a Webview2 instead of proper native component, Win2D is only a subset of the UWP one, ink is yet to be migrated, and lots of other issues.
Github repos are filled with thousands of issues, and they already did a cleanup a year ago where they simply closed enough tickets to bring it under 2000.
> The Win8/10 taskbar's code predates Avalon (the prototype/codename for WPF), and trying to change/fix it at all usually ended up breaking it. It's one of the few binaries on Windows that would not be recompiled to build a new release image in fear of breaking it.
The taskbar that underwent a major redesign in Windows 7 (released after WPF)? Also, that binary is explorer.exe, surely it got rebuilt quite often for new ads. features, and fixes?
I recently noticed that they introduced an option for small icons. Not that it changes much, as the height of the bar stays the same, but hey. Personally I've been fine since they added back the option not to combine buttons unless full.
> And yes, some stuff in Win11 still isn't WinUI, which is kind of annoying, but some of those dialogs hidden away in Windows are at least 20 years old, and probably would need to be entirely rewritten, not merely have their UI's updated.
And this is hard to do. These dialogs often are _dynamic_, with third-party settings rendered as ActiveX controls.
WinUI 3 still supports WinRT. It ALSO supports more. It's an evolution of WinUI 2, not just a simple version bump, but also not a completely new tech. It's probably a closer evolution to go from WinUI 2 to 3 than it was to go from Angular 1 to 2.
I think this is completely independent. You can simply use WinRT APIs, because Win32 Apps can use them now.
WinUI3 apps are win32 apps.
> but also not a completely new tech.
Not sure about this.
UWP APIs work out of the box. For WinUI3 you need the Windows App SDK, and it is much slower and heavy than UWP (out of curiosity I created a very simple app and it was fast just a few dozen kbs big)
I was going to ask about Win32. I haven't had to do it in a while, but if I had to write a desktop app in windows, that would be what I would reach for. It's still supported... is their any indication that it won't be for many years to come?
Also, it looks better, in my humble opinion. It's probably lacking features that I'm uninterested in.
You have that backwards. WinRT is the managed languages runtime for Windows, introduced in Win8. Its sort of the replacement for COM/OLE but also defines the ABI dialect in a way that allows managed languages to call unmanaged code without an FFI penalty.
UWP is built on WinRT, and acts as a fully managed app container, similarly to how phone apps exist on your phone. It allows WinRT apps to be deployed to any Microsoft platform, Windows, XBox, Windows Phone, etc, but also Android and iOS, and also as PWA, and are guaranteed to run identically on any of those platforms. UWP apps must be written a fully managed language that runs on the CLR (ex: C# runs on the CLR, but C++/WinRT does not). UWP also uses the second generation of WinUI-family XAML UIs, which means all UWP apps use completely native UIs, instead of slow non-native Javascript shit in a web canvas.
The WinUI family of XAML UIs started with WPF, and a slightly incompatible version of it also appeared in Silverlight (WPF = WinUI 1.0), then was brought to UWP (= WinUI 2.0), and is now its own stand alone thing that any app can use, managed or not, as 3.0.
WinRT is not an attempt to move beyond .NET, instead it is their way of allowing .NET to natively call code, and make .NET languages first class in Windows.
WinRT is not the same thing as managed .NET code. There is no requirement that a UWP is .NET. There are many examples of unmanaged C++ UWPs, including the open source Windows Terminal.
WinRT is a mechanism to express APIs in a way that is amenable to cross-language usage. It is built on top of COM, and is not a replacement for COM.
Yeah but I think when it was introduced it wasn't a thing you could use separate from the rest of UWP. What changed in Win10 was you could use WinRT APIs from regular Win32 apps too. They started breaking UWP up into independent pieces.
Or not. I haven't thought about this stuff for years. Definitely possible I forgot the ordering of things.
There are three UI frameworks in Windows, and only two actively used/developed.
All the other "countless" frameworks are iterations of one of two lines: Win32/Native (WinAPI, MFC, WinRT, WinUI3, etc) and WPF/Managed (Avalon, WinUI2-3, etc). WinUI3 exists to bridge the gap.
They probably started something new and shiny (Now with AI!) and want to get rid of the old baggage without causing too much of a user revolt (all dozens of them) ;)
You could also go for wxWidgets as it is kinda MFC-y but better and cross-platform, though like MFC you can combine it with Win32 API code (almost) seamlessly.
Or go with Qt, though that doesn't use native controls.
Maybe people can cannibalize some of the rendering code and extrapolate the controls to a better class library than they already have. Like a kind of winforms but using modern rendering APIs. I know you already can create such controls but they often end up being very verbose and just look like xaml but in C#
Last I evaluated it WinUI3 was a terrible developer experience. The application had to be literally installed on the system to even debug it, which means you end up with a large number of useless start menu entries, not to mention registry entries and such. Another thing was that the example programs crashed when I clicked on a button.
All I want is something simple to work with to make applications for Windows, and so far I'm still using Win32 with WTL.
I want to be able to create self-contained GUI application that are relatively small and can be just copied and run on another computer. Installation should be an option, not a requirement. From my evaluation, WinUI3 doesn't offer that.
WinUI3 offers that, it's just not the recommended way of building+deploying.
What you are looking for is "unpackaged, framework-dependent". This will build an application like an old-school WinAPI executable, one which expects the relevant DLLs to be installed on the host system (or distributed in the same directory).
I did try to develop an unpackaged test application but I gave up trying to implement it and just went with Win32 instead as I wanted make something rather than messing around with a UI framework.
These days if I were to switch from Win32 I might try some custom rendered framework which a lot of apps seem to use, or Qt.
For Windows UIs I've been getting into Win32/GDI/DirectDraw/etc.
Tools like CsWin32 and modern C# (ref returns) make working with these APIs a lot more approachable today. It used to be the case that you had to create a nasty C++ project to do any of this. Now you can just list the methods you need access to in your nativemethods.txt file and the codegen takes care of the rest.
Win32 is a lot lower level than other things you'd typically consider to be a "UI framework", but the important tradeoff is that it is also a lot harder for Microsoft to remove or screw with in any meaningful way. I cannot come up with something that has been more stable than these APIs. The web doesn't even come close if we are looking at the same timescales.
You still need C++ in many places, because of the COM rulez attitude within Windows team.
Windows Runtime Components was a lost opportunity to level up the play field for .NET.
As such, if you want to do something like a shell extension, or context menu extension, it is C++ as always, or having your little C++ stub that calls out into a .NET process.
I think windows needs a community effort to create an actually good framework for native development on windows. Unfortunately I just dont think such a community is big enough.
As someone reading the comments here and never made a real Windows app outside of a visual basic hello world a pretty long time ago. Why doesn't Microsoft just stop making these? They already own GitHub and vscode so why not just admit that electron/typescript is the Windows UI framework now?
I hope this leads to having a native vertical taskbar, which has been absent in W11 despite being a taskbar feature dating back as early as Windows 98.
Third-party tools have tried to reimplement it but it's either been by bastardizing the native W11 horizontal taskbar to be vertical (eg: Windhawk) or just restoring the old W10 taskbar code (eg: StartAllBack).
How will making the UI framework open source lead to taskbar changes? For third party contributions in this area, they need to open source the taskbar, not the UI framework.
The Start Menu is apparently a React Native app, so I'm going to hazard a guess and just assume WinUI is built on top of React, and that the Start Menu at least is thus indeed built with WinUI. But it's also clear that some other parts aren't, so who knows what's what. I'm sure there are folks who spent time reverse engineering it all though who do.
The start menu is not a React Native app, but it's actually even worse. Only the recommended section (which is basically recently used files - plus probably advertisements in some scenarios) is. The rest of the start menu is WinUI, to my knowledge.
I cannot stand the latency using a local app. Same with rendering views of local file systems. Frontend reactivity as the expense of responsive performance is the problem with modern user interfaces in my opinion.
Like I’m searching for an installed app. I don’t need news articles about that and never expected a file system ui to be a web portal.
The talk in question showcases a widget in the start menu that's using react native. Apart from the meme itself, I have not found indication of the start menu being a react native app. Every time this comes up it seems to always lead back to that meme.
That'd be correct. See also the top comment in that thread that (evidently after I originally read that thread) also explained exactly this, and a sibling comment in this thread tree that also did so (more than two hours after I posted my original comment, meaning I was unable to amend or delete it).
I wonder how much longer Microsoft stays committed to Windows as a whole. Windows is less than 10% of the company, users are migrating to phones, tablets, and Chromebooks (all of which can run Office), and with .NET on Linux, Windows servers are making less sense. It's a shrinking market.
The "bad thing" is that it's effectively getting abandoned, open sourcing it won't make any difference.
It's not like external contributions will suddenly turn it into something usable, and they'll just have a skeleton crew maintaining it, like they do WinForms and WPF.
People are tired of Microsoft and their ever growing graveyard of ill thought out, half-baked, "native" UI frameworks.
Native UI is effectively dead outside of Apple’s platforms, and even there it’s hanging on for dear life. HTML, CSS and JavaScript won the cross platform toolkit battle.
Sadly yes. And all the platforms are to blame. Microsoft and their 1000 half-working frameworks made writing a wrapper that was any better than wxWidgets impossible.
But also Apple "totally not deprecating" AppKit and pushing everyone to the mess that is SwiftUI, Gnome breaking backwards compatibility as a sport, and Qt messing around with QML, meant "native UI" became quicksand.
Even going HTML, CSS and JavaScript wouldn't be too bad if the browser engines provided by the OSes were any good, but it took Microsoft giving up and switching to rebranded Chromium as a browser for Windows to provide a usable one in WebView 2.
WebKitGTK is also terrible compared to the macOS version of WebKit, which hurts projects like Wails and Tauri. So everyone bundles a freaking copy of Chromium with their applications.
On the Apple side of things, AppKit and UIKit work as well as they always did, and they’ve been less pushy about SwiftUI lately probably because they realized that the old toolkits aren’t going away any time soon.
For Qt, the hard-coupling of C++ or Python for Widgets and Quick being JS-centric haven’t done it any favors. C++ and Python are fine, but not everybody wants to write either, and most people interested in writing JS are going to gravitate towards front end web stacks over anything else.
I think that for a cross platform desktop UI toolkit to see any degree of long term success, a high degree of bindability is non-optional even if it’s most capable when used with its native language. The toolkit needs to meet developers where they are, and that means being usable in the language of their choice.
The most important thing the web standards get right is their insistence on never ever breaking backwards compatibility. HTML, CSS, and JS accumulate a lot of cruft, but they do move forward into the future without leaving anyone behind.
> The most important thing the web standards get right is their insistence on never ever breaking backwards compatibility. HTML, CSS, and JS accumulate a lot of cruft, but they do move forward into the future without leaving anyone behind.
This is the comment you originally responded to. Flash never had anything to do with web standards, which do indeed strive for backwards compatibility, it's why that classic space jam website still works.
The comment was not that the "web" as a whole strives for backwards compatibility. If that were the case we would also be running ActiveX controls and Java web applets.
They only won because developers stopped giving a shit about anything except their own ease of work. There's no such thing as a good UI built with web tech, so anyone who cares about the user's experience will use a native toolkit despite the difficulties. But very few do, turns out.
That's extremely uncharitable. I think slack and discord have pretty great UIs, and that's all "web tech." Figma just IPO'd at a $58 billion valuation - is that not proof their UI is good? If it wasn't good, no one would use it. VS code became the preeminent text editor and IDE over the last decade - all web tech.
Too many reboots since WinRT was introduced in Windows 8, many battle scars and lost wars, only people without WinRT experience can think anything positive about WinUI.
If only they'd open source Windows Explorer and the taskbar/start menu, rather than resisting peoples attempts to customise them through other hackery.
My analogy is every Microsoft UI framework was almost completed in the sense of someone being almost pregnant.
A framework that has just one show-stopper missing feature or problem is... unusable. You can't embark on a large, complex application development journey if you even suspect that you'll be painted into a corner.
For example, many of WPF-derived frameworks had atrocious performance, with fundamental mistakes in their design that made them incompatible with list virtualization. It wasn't until they had to eat their own dogfood and use WPF for Visual Studio that they started fixing these issues.
Win UI 3 meanwhile dropped all support for HDR, wide-gamut, etc... going backwards to SDR sRGB only in an era where all mobile phone manufacturers were starting to standardise on OLED HDR displays. The logic behind this decision? Microsoft wanted a UI framework that is "mobile compatible"!
From watching the community calls, long after I stopped caring, management doesn't seem to care to actually hire people that have Windows development background, many times they would ignore community questions or don't get where they were coming from.
I really hope they do and the rendering engine is decently decoupled, I'll give a try building a framework on top of it.
I wish all platforms gave access to their rendering engine similar to DOM on the web, imo SwiftUI/WinUI (or WPF, but they are very similar) are not that good.
Haven't built anything native on Linux, though, no idea how good those are.
What do you mean by access? APIs to program against or fully open sourcing the rendering engine? Because you can mix SwiftUI with a few different rendering frameworks at varying abstraction levels that it itself renders to (AppKit, UIKit, Core Graphics, Metal etc.)
Basically I want an API available to build my own SwiftUI. Definitely not on the Core Graphics level :)
But good point, I actually think AppKit might be a good abstraction level. I'll play with it a bit and see if I can abstract it behind a good component model.
It is a ton of C++ for what is essentially something that an OS like Windows/MacOS/Android/iOS or the browser would provide anyway. Apps that use it ship with a substantial minimum amount of bloat, e.g. Flutter for web.
The answer to this question depends on the knowledge and quality of engineers working on the kernel and the overall Executive. These continue to evolve with more advanced technologies, like VBS or the future usermode endpoints for EDR and possibly anti-cheat, pushing those out of the kernel, which presumably requires kernel work.
David Cutler is still there but working on other stuff, last I understood.
That does lead to the question of 'would they do it the same way and/or follow the NT OS/2 spec' to get a functionally identical Windows today.
I would be fine with really any version as open source or at least one that was free-as-in-free-beer to make it possible to maintain virtual machines running old software without having to rely on dodgy downloaded versions... I'd even pay Microsoft something reasonable if they put them up on GOG or some similar site for a few $.
Microsoft has a long history of releasing numerous UI frameworks: VB, MFC, WTL, Silverlight, WPF, WinForms, and others. Yet despite this abundance, many of the core components Microsoft used in its own applications were never available to developers. They rarely ate their own dog food, and desktop UI development relied on third party components. For the past two decades, native desktop UIs have steadily declined in favor of web-based components, so it's unclear what the real benefit of another native framework would be today.
Too many questions that any Windows developer would know why the question was being asked, where they either couldn't answer or had puzzled looks on why the questions were being asked in first place.
That is also a reason why now there are Webview2 instances all over the place on Windows 11.
swift ui apps have some webkit views like the app store, music app etc
Windows 98 introduced Active Desktop, and still, not as many webviews all over the place.
MSHTML was the first Electron.
but swift ui apps are great and fast cause they're not electron monsters!
thankfully you can use safari webkit inside them, but that doesnt work cross-platform
Windows 11 looks great if you just look at the press photos and stay a "very happy path" while using it but as soon as you start digging deeper you realize it's like that meme of Homer Simpson with clips on his back.
https://youtu.be/r549Zn74Xg8
That's most old large orgs who have been around for ~5 decades. Nothing special about Microsoft.
Then Windows could pull a ChromeOS. The only place where a native UI is really needed is the lock / login screen; a tiny subset of any current UI toolkit would suffice.
Office on Windows relies heavily on COM and other Win32-only libraries to function.
I can't think of a valid reason to rewrite Office to that extent. They already have Office for the web and Mac Office; while not identical in features, they're often good enough outside of BI scenarios or highly complex Excel work.
Outlook is the lone exception where that team decided to have Outlook for the web, Windows Outlook, and Mac Outlook be identical, so those are getting their rewrites with removal of Win32-specific features where applicable.
See BUILD recordings from 2018, I think, where they demo the new UWP controls contributed by the team, similarly to what happened before with the ribbon on Windows 7.
I would vouch they got as happy as the rest of us.
I wish they didn't. Outlook on macOS is abysmal nowadays and I still find myself resorting to the legacy view just to change some settings that both iterations can read but only one exposes.
I significantly prefer using Thunderbird or the web views for Gmail and Zoho Mail over any version of Outlook. Is the integration across O365 apps nice? Sure, but the platforms themselves are miserable to use.
In a similar vein, I was cautiously optimistic about Teams V2 for unifying the client. But then they completely dropped the Linux client for their PWA which does not have feature parity with the "native" platforms and has a significantly worse UX.
> We are being thoughtful about resourcing. This effort is happening alongside other critical responsibilities like security, platform stability, and support for existing products. Our current focus is on foundational work that unlocks value for contributors and increase transparency. We are aligning this work with Microsoft’s broader business priorities to ensure long-term support and impact.
I don't sense any benevolence in their words. They are just pulling off their resources and dumping the framework on the public, hoping passionate losers will contribute.
This is unduly meanspirited. Your passion projects are not even considered to probably the vast majority of the world; that doesn't make you a loser.
I have zero interest in the Win11 UI, and am even on board with the cynical view that this is purely a bean counter cost savings for MS rather than some benevolent outreach.
But I respect the people that take this on and want to keep it going.
Maybe the biggest beneficiary will be AI/LLMs - which will become way better at creating Windows UX after this.
Not OP but I understood this as "contributing for free to a project owned by a corporation worth more money than you could realistically spend in a lifetime is what makes you a loser".
And I do mean "prey" with a negative connotation. One of the biggest perks of Open Source from a company's perspective is that you can get developers to work on your project for free without paying them. However, those same developers have very little say in the direction of your product, and any forking of your project would have to compete the economies of scale that come from being a company. The only downside is that you have to worry about being out-scaled by a bigger company, as the developers of ElasticSearch, Redis, Docker, and others found out first-hand.
This is distinct from Free Software, which has different dynamics that are much more friendly to mutual benefit, collaboration, and forking, especially if there's no CLA that pools all of the copyright into one corporate or non-profit entity. But then again, this sort of Free Software moralizing is expressly the reason why Open Source was created as an alternative in the first place. The OSI even used to admit as such on their website:
https://web.archive.org/web/20021001164015/http://www.openso...
As has the rest of the world, and we will just put it on the list of UI frameworks Microsoft did not completly implement, fully support or considering "the default".
So we stay stuck with the status quo: There's no official UI for Windows, still.
More seriously, a desktop UI toolkit is hardly a moat by now, especially a Windows toolkit, Windows having 3-4 very different look-and-feels mixed and shipped with the official distribution.
OTOH security and stability are things that Windows critically depend on to stay on the laptops and desktops in medical, governmental, and financial institutions, and on devices of executives.
I don't watch Windows too closely. Have there been any other signals of waning investment into Windows? Has Nadella or the other leadership admitted to this?
Hasn't Microsoft also been pulling back from Xbox? IIRC, haven't they been trying to consolidate and use gaming to lionize Windows as a platform? After spending billions on multiple AAA studios? That would seem counter to a Windows pullback strategy. Is this a case of the left hand not talking to the right hand?
Wasn't there a story some while back about them crawling the web for PWAs and putting them on the Microsoft Store (or is it Windows store?) to make it into less of a ghost town? And if you go to their official website, browsing vaguely in the direction of UI development, you will see them advertising PWAs as first-class citizens of the Windows ecosystem. I also vaguely remember that Windows+Edge offers special APIs to PWAs for things like file system access and so forth that are unparalleled on other platforms.
I take this push for PWAs (combined with their own lack of dogfooding -- Office is not written with Win UI) as them basically throwing in the towel on Windows-native desktop software (outside of games, maybe).
But, to be fair, native desktop development has seen a lack of investment on all desktop platforms. JavaFX is a ghost town too.
All of that could change, depending on what happens next with Chrome, Bing, and Mozilla. -- The future of each of those seems to be hanging in the balance at the moment.
The web could become a mere implementation detail of the Google monopoly, rather than the open thing it is today. Couple that with a government-level push for digital sovereignty in the E.U. and other places (certainly China). Then, maybe, you will see renewed interest in desktop GUI apps.
On a side note: I think it's amazing what has happened in the open-source space with Rust-based UI frameworks (iced, egui, slint) and COSMIC. The future for cross-platform desktop UI development hasn't looked so bright, maybe since the introduction of Java Swing (was that in the early 00s?)
Apple is also doing just fine.
It is Microsoft that went south, as Satya apparently sees no value on Windows.
Note the drama on XBox, the console not the Microsoft Games Studios brand, as suffering from the same lack of interest from Microsoft's management.
Last time I looked into Uno, it seemed to me more like a mobile-first play (similar to Flutter), but maybe I missed something there.
Qt is still joined at the hips with C++, and I'm finding it hard to imagine that the next generation of developers will go in for C++ over alternatives like Rust. There is a QML/JavaScript story. But why, on earth, would you go there, if history hasn't forced your hand, as it did with the Web.
I hear good things about Avalonia, but: Why throw out the baby with the bathwater and build something "open" within a monopolist's walled garden.
> Apple is also doing just fine.
But "lack of investment" is still not entirely improper as a characterization of how they prioritize desktop versus mobile.
are not going to write code.
I don’t doubt that the amount of code will not reduce, it’ll just be easier and easier to get AI to fix it.
We are still less than two years into widespread use of this technology, and it’s surprising how good it is.
I am a ‘greybeard’ compiler guy and modern LLMs fix compiler bugs better than me, to a large extent. And it keeps slightly getting better every few weeks.
I firmly believe having LLMs generate code for current languages is a transition step, just like Assembly devs had to be convinced optimising compilers were generating the same kind of code they would write themselves.
They are not there yet, but the day will come.
Do you mean it is amazing how poor is an experience and how many features, widgets and controls they lack when compared with something like FPC/Lazarus and Qt?
Rust is a nice thing, but its UI ecosystem simply cannot even compare.
What's interesting is the speed at which Rust UI toolkits develop and maybe even mature.
But I personally don't know why anyone would reach for this framework. Maybe if you're building a Windows app and you want a very consistent look and for your app to feel "native", but aren't there better options out there for doing this already?
Offloading the work to their victims. Maybe they will even make it usable again.
Too many burned bridges since Windows 8 came out.
If anything, this is Microsoft confirmation that they are unwilling to fix all the broken issues, and hoping the community will somehow still care.
WinForms and WPF are currently the only viable frameworks for Line of Business application. I have yet to see a WinUI3 application in the wild.
On a side note, I still love WPF after working in it for 10 years. Maybe it's just familiarity, and it's a little verbose at times, but man it's a great framework when you know that you're doing.
Why use a busted incomplete framework missing basic features when there's entire ecosystems of open source cross-platform frameworks being actively maintained and which actually have all the features you need?
Really this is just another UWP destined to be forgotten and scorned.
My big idea to fix WPF is to rebuild the data binding system to use the .NET compile-time code generation feature instead of run-time reflection. I think that would solve a lot of problems. For one, projects could do an actual AOT build of their applications (right now, you either need to rely on an installed .NET runtime or "publish" the project with a lot of .NET libraries included for self-extract, bloating the final file size). Code generation would probably improve performance quite a bit too, maybe open up the possibility to compile for cross-platform, introduce type safety for XAML bindings (rather than getting vague runtime binding errors), remove the need for so much class scaffolding, etc... I've thought about starting an open source project to do it myself, but seems like a pretty big task and I would essentially be starting a project to help with my other project which I already don't have enough time to work on...
[0]: https://docs.avaloniaui.net/docs/basics/data/data-binding/co...
[1]: https://github.com/kekekeks/XamlX
I really wonder what they expect from open-sourcing it. Just to pretend how open they are? Or is there any real benefit to developers who target windows?
MAUI is not exactly a competing product and is more about enabling cross platform UI development. Different intent.
WinUI is actually ok tech. It’s evolved over the years through a few iterations, now on WinUI 3.
Im mostly with you though. Until they rebuild the entire OS in it, including all of the administrative controls and tools, I don’t trust the longevity.
WinUI 3's big changes (to get a 3.0 version number) is not with the XAML stack itself, but its new ability to be called by unmanaged apps as a normal UI toolkit, so it can finally be used by all apps. No more using Shell UI like we're writing Win 3.1 apps.
And yes, some stuff in Win11 still isn't WinUI, which is kind of annoying, but some of those dialogs hidden away in Windows are at least 20 years old, and probably would need to be entirely rewritten, not merely have their UI's updated.
Also, fun fact: The Win8/10 taskbar's code predates Avalon (the prototype/codename for WPF), and trying to change/fix it at all usually ended up breaking it. It's one of the few binaries on Windows that would not be recompiled to build a new release image in fear of breaking it. Rewriting the taskbar made sense, GETTING RID OF SMALL MODE DID NOT, GODDAMNIT MICROSOFT.
The WinUI map component is a Webview2 instead of proper native component, Win2D is only a subset of the UWP one, ink is yet to be migrated, and lots of other issues.
Github repos are filled with thousands of issues, and they already did a cleanup a year ago where they simply closed enough tickets to bring it under 2000.
The taskbar that underwent a major redesign in Windows 7 (released after WPF)? Also, that binary is explorer.exe, surely it got rebuilt quite often for new ads. features, and fixes?
> small mode
I recently noticed that they introduced an option for small icons. Not that it changes much, as the height of the bar stays the same, but hey. Personally I've been fine since they added back the option not to combine buttons unless full.
And this is hard to do. These dialogs often are _dynamic_, with third-party settings rendered as ActiveX controls.
https://learn.microsoft.com/en-us/windows/apps/winui/winui3/...
https://learn.microsoft.com/en-us/windows/apps/develop/platf...
I think this is completely independent. You can simply use WinRT APIs, because Win32 Apps can use them now. WinUI3 apps are win32 apps.
> but also not a completely new tech.
Not sure about this. UWP APIs work out of the box. For WinUI3 you need the Windows App SDK, and it is much slower and heavy than UWP (out of curiosity I created a very simple app and it was fast just a few dozen kbs big)
I don’t trust WinUI at all.
I was surprised, when I spoke to a former colleague, to find that an internal tool I wrote 25 years ago is still being maintained. Win32 as well.
Just remember, cobol is still in active use, today
Also, it looks better, in my humble opinion. It's probably lacking features that I'm uninterested in.
UWP is built on WinRT, and acts as a fully managed app container, similarly to how phone apps exist on your phone. It allows WinRT apps to be deployed to any Microsoft platform, Windows, XBox, Windows Phone, etc, but also Android and iOS, and also as PWA, and are guaranteed to run identically on any of those platforms. UWP apps must be written a fully managed language that runs on the CLR (ex: C# runs on the CLR, but C++/WinRT does not). UWP also uses the second generation of WinUI-family XAML UIs, which means all UWP apps use completely native UIs, instead of slow non-native Javascript shit in a web canvas.
The WinUI family of XAML UIs started with WPF, and a slightly incompatible version of it also appeared in Silverlight (WPF = WinUI 1.0), then was brought to UWP (= WinUI 2.0), and is now its own stand alone thing that any app can use, managed or not, as 3.0.
WinRT is not an attempt to move beyond .NET, instead it is their way of allowing .NET to natively call code, and make .NET languages first class in Windows.
WinRT is a mechanism to express APIs in a way that is amenable to cross-language usage. It is built on top of COM, and is not a replacement for COM.
Or not. I haven't thought about this stuff for years. Definitely possible I forgot the ordering of things.
UWP came along in windows 10.
All the other "countless" frameworks are iterations of one of two lines: Win32/Native (WinAPI, MFC, WinRT, WinUI3, etc) and WPF/Managed (Avalon, WinUI2-3, etc). WinUI3 exists to bridge the gap.
Or go with Qt, though that doesn't use native controls.
https://m.youtube.com/watch?v=bUOOaXf9qIM
All I want is something simple to work with to make applications for Windows, and so far I'm still using Win32 with WTL.
I think that's because you chose "packaged" application, these apps need to be installed so that capabilities are handled correctly.
To be fair, macOS has the same issue, although they won't show in Launchpad, they still can be indexed by Spotlight.
What you are looking for is "unpackaged, framework-dependent". This will build an application like an old-school WinAPI executable, one which expects the relevant DLLs to be installed on the host system (or distributed in the same directory).
These days if I were to switch from Win32 I might try some custom rendered framework which a lot of apps seem to use, or Qt.
Tools like CsWin32 and modern C# (ref returns) make working with these APIs a lot more approachable today. It used to be the case that you had to create a nasty C++ project to do any of this. Now you can just list the methods you need access to in your nativemethods.txt file and the codegen takes care of the rest.
Win32 is a lot lower level than other things you'd typically consider to be a "UI framework", but the important tradeoff is that it is also a lot harder for Microsoft to remove or screw with in any meaningful way. I cannot come up with something that has been more stable than these APIs. The web doesn't even come close if we are looking at the same timescales.
Windows Runtime Components was a lost opportunity to level up the play field for .NET.
As such, if you want to do something like a shell extension, or context menu extension, it is C++ as always, or having your little C++ stub that calls out into a .NET process.
Third-party tools have tried to reimplement it but it's either been by bastardizing the native W11 horizontal taskbar to be vertical (eg: Windhawk) or just restoring the old W10 taskbar code (eg: StartAllBack).
The news being discussed is not about explorer being open sourced.
Like I’m searching for an installed app. I don’t need news articles about that and never expected a file system ui to be a web portal.
What's the source for this?
It's not like external contributions will suddenly turn it into something usable, and they'll just have a skeleton crew maintaining it, like they do WinForms and WPF.
People are tired of Microsoft and their ever growing graveyard of ill thought out, half-baked, "native" UI frameworks.
But also Apple "totally not deprecating" AppKit and pushing everyone to the mess that is SwiftUI, Gnome breaking backwards compatibility as a sport, and Qt messing around with QML, meant "native UI" became quicksand.
Even going HTML, CSS and JavaScript wouldn't be too bad if the browser engines provided by the OSes were any good, but it took Microsoft giving up and switching to rebranded Chromium as a browser for Windows to provide a usable one in WebView 2.
WebKitGTK is also terrible compared to the macOS version of WebKit, which hurts projects like Wails and Tauri. So everyone bundles a freaking copy of Chromium with their applications.
I should have studied mechanical engineering.
For Qt, the hard-coupling of C++ or Python for Widgets and Quick being JS-centric haven’t done it any favors. C++ and Python are fine, but not everybody wants to write either, and most people interested in writing JS are going to gravitate towards front end web stacks over anything else.
I think that for a cross platform desktop UI toolkit to see any degree of long term success, a high degree of bindability is non-optional even if it’s most capable when used with its native language. The toolkit needs to meet developers where they are, and that means being usable in the language of their choice.
The web has continually added and removed features. It is absolutely not perfectly backward compatible. It’s not even close.
I said it was a closed standard, and I stand by that.
This is the comment you originally responded to. Flash never had anything to do with web standards, which do indeed strive for backwards compatibility, it's why that classic space jam website still works.
The comment was not that the "web" as a whole strives for backwards compatibility. If that were the case we would also be running ActiveX controls and Java web applets.
Microsoft is the bad one here, unfortunately.
Microsoft is taking steps to open-sourcing Windows 11 user interface framework
They could go back to Win32 + WinForms and everything would be fine.
Windows and an absolutely baffling array of UI frameworks with various pitfalls, uncertain futures, and no clear winners.
(honorable mention to WinForms though.)
A framework that has just one show-stopper missing feature or problem is... unusable. You can't embark on a large, complex application development journey if you even suspect that you'll be painted into a corner.
For example, many of WPF-derived frameworks had atrocious performance, with fundamental mistakes in their design that made them incompatible with list virtualization. It wasn't until they had to eat their own dogfood and use WPF for Visual Studio that they started fixing these issues.
Win UI 3 meanwhile dropped all support for HDR, wide-gamut, etc... going backwards to SDR sRGB only in an era where all mobile phone manufacturers were starting to standardise on OLED HDR displays. The logic behind this decision? Microsoft wanted a UI framework that is "mobile compatible"!
I wish all platforms gave access to their rendering engine similar to DOM on the web, imo SwiftUI/WinUI (or WPF, but they are very similar) are not that good.
Haven't built anything native on Linux, though, no idea how good those are.
But good point, I actually think AppKit might be a good abstraction level. I'll play with it a bit and see if I can abstract it behind a good component model.
David Cutler is still there but working on other stuff, last I understood.
That does lead to the question of 'would they do it the same way and/or follow the NT OS/2 spec' to get a functionally identical Windows today.
What we got: Win11 dumpster fire, free for everyone to fix
Or a 2 row taskbar?
So I can easily switch between my 40 windows open? What is good for productivity?
Windows definitely shot themselves in a foot with building multiple renderers while building them on top of each other.
winui3 was abandoned the moment it was conceived.