As a result you never know what to bet on and spend way too much time evaluating different technologies. And there is very little coherence between applications. That seems to work for them but as a dev it’s really frustrating to never feel there is a clear direction moving forward.
If they actually start using their own tools that’s already an improvement compared to let’s say, Blazor. React native for windows is also used by the XBox application in windows.
And it's a bad strategy, given the state of a lot of these UI frameworks developed by windows. Instead of committing sincerely to something, you're not even getting started with a framework it's already deprecated. I understand companies that stuck with Winforms for 2+ decades, since the rest is an unfinished buggy mess. Remember WPF? Yes, me neither...
Here is a better strategy, just let people code their winform/XAML/... UI in Javascript or Typescript directly like with Jscript.net in the past.
At this point, right now if you are looking to build a Windows 11-targeted WinUI "green field" project the current green path (and almost the only currently supported path) is to start with a WPF application in .NET 6 and pull in WinUI controls.
To some uses, Windows having a diverse mishmash of UI frameworks from multiple decades/eras/epochs all living side by side and mostly interoperating without challenge is a massive feature rather than a bug. Sure it's ugly, but it's stable.
I don't believe it's working, at all, when all these teams end up building GUI with Elektron (ironically owned by Microsoft now). It means that developers have very little confidence in all these MSFT technologies.
For the most part in its history Windows has officially only ever had 3 UI frameworks: Win16, Win32, and WinRT (or WinUI if you prefer to call it that). Win16 was shut down in the 32-bit transition (but had a compatibility path that lasted for many years following the transition). Win32 has a lot of individual "sub-frameworks" based on the decade the software was written in, but overall is still "maintained", but "stable". WinRT has had some hurdles with branding/naming/messaging/developer support, but that is in part because is very actively maintained and still growing and in part because Win32 is still maintained and legacy code developers don't want Microsoft to forget it/leave it behind, worsened by Microsoft taking too long to nail down a transition more like Win16 to Win32 in "soft" forward compatibility and relatively known end date (end of 16-bit processor support). They've put a lot of work in the "soft" forward compatibility in recent years, though partly in detriment to the "relatively known end date" (in Windows 8-10 it was "as more things move to mobile, HoloLens, Xbox" and in Windows 11 it is now "????").
For 20+ years! https://www.joelonsoftware.com/2002/01/06/fire-and-motion/
> Think of the history of data access strategies to come out of Microsoft. ODBC, RDO, DAO, ADO, OLEDB, now ADO.NET – All New!
Now ?!!! ADO.NET is 20 years old already, it appeared in .NET Framework 1.0
I don't think that's an accurate statement, at least it felt a lot more cohesive back in the Windows 3.x to Windows 2000 days.
Sure you could write your applications in different languages, but they had one API for doing GUI, and they had lots of documentation on how applications should behave. As a result applications felt very cohesive overall.
Interestingly it was Microsoft who really started to go against their own guidance with Office. Suddenly a toolbar which was not part of the standard GUI API, which didn't look like anything native. And they've continued to push this trend, resulting in the current mess.
If you restrict yourself to the most recent decade I can agree.
https://github.com/microsoft/react-native-windows/projects/3...
https://www.youtube.com/watch?v=hxM8QmyZXtg
Same guy from this video did a series of videos rewriting the renderer in a weekend or so and going hundreds or thousands of times faster, with more advanced unicode/ligature/language support.