Because ...
... the UI from Redmond is so universally loved?
Makes sense. If you live in Crazy Town.
Microsoft's roadmap for developing Windows applications is opposed by some programmers who want to see a cross-platform solution, rather than just being Windows-only. Spanish developer José Nieto this week raised an issue on GitHub, stating that WinUI, which Microsoft is positioning as “the native UI platform for Windows 10,” …
"Do really people prefer Qt or web UIs?"
I honestly don't know. I do know that I know quite a few people who have shifted from Redmond or Cupertino to FOSS solutions primarily because of the interface. I can't say I've ever heard of anybody moving in the other direction because of the interface. Nor have I ever heard of anybody moving from Cupertino to Redmond for the interface, but I have heard of people moving the other way for that reason.
I'm a sample of one, this is a testimonial, yadda yadda.
Don't like xaml and wpf... Every app I've had the misfortune of developing with these technologies has had serious performance problems and issues where Win32 had to be used to get expected behaviour. Being the poor mug that knows C#/C++, Win32, Linux, Qt etc... It fell to me to dig the projects out of the holes they dug because the majority of developers were too silo'd in thier skill sets.
wpf performance issues
The few projects I've used WPF on have actually performed very well - if you do as much as possible in XAML it offloads it to the graphics card for you nicely. The other thing I really enjoyed was using it for a touch screen project - it's very well optimised there.
Line of Business stuff almost always seems to be presented via web browser these days. I confess I'd rather it wasn't, thus leaving control of how it's presented to the developer, but it does have obvious advantages when it comes to working across platforms.
QT uses QML as a declarative layout with Javascript bindings. It's as easy to drag an app to its knees if you shove too much JS into the application or get the interfaces wrong instead of delegating to C++ objects.
I think that's the primary issue that modern layout engines suffer from - too much traffic between bound events and code can incur a call penalty or forces relayouts or redraws.
But I know from decades programming Win32 that there is no performance magic wand there either. Yes you're closer to the action. But then again the API is geared around a 40 year old design for immediate mode rendering with WM_PAINT messages flying around. A modern layout engine can take advantage of hardware acceleration so all window elements are surfaces and composition is lightning fast.
Not had any major problems with WPF performance here. There are times when you have to a be little bit sensible about which/when properties are updated but we've only had to deal with that in places where updates were inherently spammy such as audio position information during playback.
The biggest complaint I'd level against WPF is the learning/toolbox curve but we got over that pretty quickly. Once everyone embraces MVVM and learns to shy away from code-behind and you build up a decent toolbox (mainly converters) things go well.
It also has the advantage of being very similar to Xamarin so by and large developers can move between the two freely and share a great deal of code. Typically you have a simple shared view model which has a platform specific service injected. I reckon 95% of our code base is shared between our Windows, Android and iOS client projects.
I like WPF... It's not x-platform but it makes great vivid animated Windows app with little work... I did multiple production WPF apps and never had issues with perf or ease of coding... PInvoke works great when you need a quick Win32 API, but you can also use unsafe code... Managed C++ is very powerful...
I like XAML as a UI markup, and WPF Everywhere promised so much, but failed to be surficiently better than HTML5 to justify the deployment costs. With Visual Studio Code being built on Electron (chromium runtime), it's clear that a cross platform XAML needs to collaborate with W3C and Google and be fully open source.
I'm not sure Microsoft is ready for the challenge.
Until then WinUI is PR
Microsoft's strategy is currently to give away tools (or at least a subset of them) in the hope of driving development for revenue-generating products like Windows licences and Azure subscriptions.
About the only thing driving new users to Windows is that lots of applications will only run on Windows. Make it easier to develop cross-platform apps and desktop revenue will further dwindle, particularly lucrative corporate revenue.
It's a bit like coronavirus - Microsoft knows the end of its desktop income is coming, but it needs to postpone it for as long as possible to have mitigation in place. I can't see it giving high-priority to cross-platform apps at the present moment, but I'd be equally surprised if in the fullness of time even Microsoft were not keen to put an end to the cost of supporting Windows as a consumer platform.
I am not sure that is really true these days. Microsoft canned the old .NET platform, and focused on .NET core which is cross-platform, and has some compromises baked in as a result. They also produced Visual Studio for Macs and SQL Server for Linux.
They do seem to be pushing Azure hard, and maybe they see it as a way in. But to me it seems very unlikely that they will encourage many Mac and Linux people to adopt MS technology. More likely, they will just encourage those who were on the MS train to look at Linux servers when previously theyd' have no choice but to use Windows.
Most applications I've used that were "cross-platform" felt like a second-class citizen, unless they were web-based.
It's hard to get the chroming and feature integration right across multiple platforms. So I'd rather that Microsoft focused on doing a good job on just one or two.
I'm tempted to say that they could lead a charge for some kind of universal markup. Reach out to Google with Android, and to Apple, and see if they can get something done there. But the big problem is that both of them are now committed to declarative UI systems (Jetpack Compose and Swift UI), so for them a standardised markup might be seen as a step backwards compared to their current efforts.
But without the support of the platform vendors, any cross-platform UI will always be lag behind the platform itself, and risk going against native conventions. Basically, the same problems that Java had with its UI toolkits...
So given that history and current politics suggests any attempt at cross-platform UI is highly likely to fail, I'm rather sceptical. But I'd love to be proved wrong.
Well, second-class citizens or not, LibreOffice, VLC, Handbrake and Audacity have performed just fine for me on Linux as well as Windows.
I am not a programmer, but I have believed for some time now that the future on the desktop, at least, should be cross-platform. This would allow end-users to pick an OS on the basis not of what software it will run, but what it can offer them in terms of the overall user-experience.
VLC has one of the worst UI I've ever seen. The good thing about video players anyway is that once you play a video you get rid of the application UI.
"but what it can offer them in terms of the overall user-experience."
Which means it has to develop its own UI and ignore cross-platform limitations - if you want a great user experience.
Apple UI is usually great because Apple always had a very strict control on every bit of the platform it run upon.
Now MS believes self-appointed "artists" and interns can develop a great UI, and the result is under everyone's eyes.
I was thinking in terms of the OS itself. To be honest, I don't care that much about how the UI looks on VLC, Handbrake, Audacity and the like. All of the functions are easy to find, which I do find important.
One of the reasons why I've switched to Linux on my home computer is that it has allowed me to install KDE Plasma, which gives me much more direct access to my computer's functionality than the Windows 10 interface did. The lack of advertising integrated into the application launcher also helps.
But if having consistent interfaces are a concern, there are, of course, options available, such as using Qt.
The Register's attempts at being humorous, in its presentation of news have always been--to put it charitably--pathetic, at best.
It seems, however, that a straight-forward approach, while very forcibly putting any attempts at cleverness on infinite-hold, just might be what is needed to add the long-sought-after, but always-out-of-reach attempts at being 'cute' and <gag; vomit> funny.
The following present-tense headline is offered as an example of one of the funniest the only humorous example I can remember ever seeing here:
"DEVELOPERS HAVE LOST HOPE MICROSOFT WILL DO THE RIGHT THING"
You know, my grandma used to tell me a story. Apparently there were 100 soldiers marching on a parade ground, and one of them said to the officer "Sir, the other 99 are marching out of step!".
Perhaps it's not The Register that needs to change its approach to humour?
While El Reg is a very good (and apparently well regarded) tech news sites, one of it's defining features for me has always been that it combines good tech journalism, from Journalists that seem to have some understanding of tech (sadly quite rare), with humour.
I've been following the site pretty much since the start, and while they've actually toned down the humour, it's always been like that.
Perhaps you'd be better off with Techcrunch or Anandtech?
Care to explain?
Almost all the Qt applications I use either look-and-feel native, or deliberately have their own unique look-and-feel on all platforms.
There's a few that went unique and damn well shouldn't have, but that's true of MFC and SwiftUI too...
Yes and it's not particularly good nor powerful. And so bland.
Microsoft isn't great at user interfaces, let's face it. Windows 8 was a disaster, Windows 10 is still a confusing mix/match of control panels, scaling that half-works. What they design now is wasting way too much space because everything has to be touch-first (thinking of MS Teams here with huge bubbles around everything). The new iconset where they all look about the same.
I would pick a framework of a company that is actually good at UX unless Windows was absolutely my primary target for the app.
'WinUI, which Microsoft is positioning as “the native UI platform for Windows 10,” should target not only Windows, but also Linux, Mac, iOS, Android and WebAssembly – this last so it would also run in a web browser.'
MS has made such a pig's ear of Win 10 GUI that they can keep it.
That is exactly what I thought. No other platform would even want this metro/modern/awful 'flatso' Windows mess of a GUI. MS should be looking to borrow an open source, cross platform GUI library not the other way around, and while they're at it they can borrow a decent desktop environment too.
Yes, I do remember being able to swap out Program Manager for alternatives. Maybe if MS still allowed that, or offered a MATE/Cinnamon option for Windows users, then they might have avoided some of the (non-privacy related) backlash against Windows 8 and 10.
I don't recall if I ever used Norton's replacement, but I do recall trialling a few alternatives. I quite liked Star Office's replacement desktop on Win 95 (I think it was).
Exactly. They need to make an OFFICIAL WIN32 API LAYER like Wine (one was done for XP on Mac a while back, remember?) and THEN it would be UBER popular! I'd pay MONEY for that!
From the article: The modern app platform introduced for Windows 8
STOP! CALLING! THAT! CRAPPY! INTERFACE! "MODERN"!!!
Some people are asking M$ to switch their UI framework to something cross-platform?
Then why not just use something that is reputed to be pretty good for cross-platform support, namely Qt? There, problem solved. But I can understand it's not a solution in many, far too many shops. Is it a technology from Microsoft? No. Then I'm sorry we can't use it, and there cannot be any discussion on this matter.
By the way, what good is a cross-platform UI if the involved software requires three different versions of .NET and five different versions of Visual C++ runtime? Yes, such things exist...
Because Qt works but it's not that great? Otherwise it would have been already the de facto standard of most applications. But it's not.
Anyway, a cross-platform GUI is quite impossible, unless all the relevant players sit at a table and define a standard all of them abide to. Than UI development will evolve at a glacial pace.
" a cross-platform GUI is quite impossible, unless all the relevant players sit at a table and define a standard all of them abide to. Than UI development will evolve at a glacial pace."
I'm actually working on THAT VERY PROBLEM. A low-level X11 + Win32 toolkit with high-level APIs (and a "visual studio '97 like" IDE) that would make it possible to do exactly what you said. X11 'Event' style interface, with Win32 API similarities. high level and low level. Intelligent paint/expose processing. But I've been working on it for YEARS, and still need money to live on. So yeah.
I started coding for OS/2 in the early 90's [took a class]. I switched to Windows 3.x coding because I couldn't purchase OS/2 for myself without buying a PS/2. Windows coding was great until ".Not" and C-pound came along. That's when I switched my focus to Linux and FreeBSD, using FreeBSD as my daily-driver desktop, being truly disappointed and seeing 'embedded' and POSIX as having a better opportunity that windows UI.
GTK also works for cross-platform, worthy of mention. And wxWidgets.
(I only downvoted because you said 'impossible' - nothing is impossible - but some things, of course, are highly unlikely...)
"I couldn't purchase OS/2 for myself without buying a PS/2."
Commonly thought to be true, but it wasn't. I was running OS/2 on non-IBM hardware in 1989. In fact, I've been selling OS/2 solutions for over 30 years (nowadays it's EComStation and ArcaOS), and have never run it on true IBM hardware.
(I only downvoted because you said 'impossible' - nothing is impossible - but some things, of course, are highly unlikely...) .... bombastic bob
That's the way to get things done much more quickly, El Regers and commentards, and many thanks to bombastic bob for reminding us with their perfect prime example.
If you see/think something disagreeable, share your reasoning ....... for one can easily be more in the wrong that right/badly misinformed rather than more fully advised of an agile development in an agile development.
To be fair, it could be done better than mediocre ... if, and I stress the if, the various players would drop the petty politics, agree on a single common standard, and then stick to it without embellishing it.
So not impossible. Just highly unlikely.
"The nice thing about standards is that there are so many of them to choose from." —Andrew S. Tanenbaum
> To be fair, it could be done better than mediocre
I'm not so sure. It seems to me that any cross-platform approach necessarily involves compromises that reduce the quality of the GUI on any particular device, because you have to avoid using any of the platform-specific features.
I could be wrong, of course, but I've seen numerous attempts at this sort of thing over the years, and so far the very best of them have only barely achieved "mediocre".
What stops developers doing the right thing with all devices in Search and Service of an Almighty Source of Awesome Alien Force ...... and of which there can be many?
The virtual world provides all necessary tools with the likes of Microsoft and Apple empires hosting and toasting absolutely addictive passions for desire to quench and satisfy for another desire to savour and server ...... a program with the many temptations that befell and battered/bruised and vanquished all earlier TeleAudioVisual Applications All Engaging in SMARTR Missions via current intelligence running communications infrastructure/world wide web networks ..... IT is a Ubiquitous Prime Hosting Platform for Virtually Advanced IntelAIgent Operating Systems.
Take a Bow, BT. ..... if you can claim it as part of your love child. And thanks, Huawei, for without you there would be nothing as is now.
What do you want to do next? Reveal an Almighty Quantum Communications Leap with Aspiring AIs Conspired to Inspire AIs to Assume and Presume Operating Systems Command and Control. ..... with further simple textualised introductions with instructions to enthusiastically follow and deliver for Supplied Future Outputs.
Hi :-) What have you worth present buying for future impressive sales? Anything Great and Truly Terrifying to Boot and Root in the Wrong Growth Medium?
There Madness and Mayhem, CHAOS and Conflict Collide and Present Media the Means to Cast Crazed Pictures. That be Heap Bad JuJu for the Insane of Mind, hence Plantations of Supplied Future Outputs in the Right Growth Medium of Another where Others are Blooming and Expressing their Wares.
I Kid U Not.
I'm not certain, but I think amfM just suggested CDE as a good start ... ...... jake
They are an excellent starting point, jake, with myriad avenues of travel to progressive destinations which are also for some akin to virtual 0day launch pads, for here are a number of viable mutations of the master for further original hosting and posting/shared development. ............ Celestial Digital Entertainment/Common Desktop Environment/Collaborative Development Environment/Concept development and experimentation/Chrome Dev Editor
And cheers for the beers :-)
I found that Win7 stayed out of the way... I hated that they removed Virtual Server support which made it harder to create domain based applications but at least it's not the Sybil they created next... I tried UWP and it sucked bad... Even the apps were lacking.. I tried the "Modern" version of WinZip and it was barely WinZip...
wxWidgets looks a lot like MFC. You can write a C++ program using MFC, and after spending a bit of time on it [not a whole lot, actually] make it compile using wxWidgets, for POSIX systems.
My preference: just write for POSIX first, then make it work in windows.
I've often thought that the world lost a lot when X11 didn't end up at the top of the pile.
Then again, I suspect display Postscript (note the little 'd') - foundation of the Sun NEWS interface - would have been far better than X11 as a global standard. The only reason that it didn't get there was because the rest of the Unix world was damned if they were going to let Sun dominate that arena too, having got the world networked with NFS, and backed X11 to the hilt despite everything.
Sigh.
What you're calling for is that Gawd-awful kludge that is derisively called the Windows UI to be "ported" to other platforms? Geez, dude! There is already at least one solution to that -- it's called Qt, and unlike anything that Micros~1 might foist on an unsuspecting (or even a suspecting) public, Qt actually works. So you think the Rabble from Redmond can produce something that can actually compete with Qt?
Pass that bong, please....
Microsoft can't even get their teams that build their core applications to switch to WinUI.
Office, Visual Studio, large parts of Windows itself, it just shows that they're not willing to invest in WinUI and when you're claiming something is the future you need to go all-in yourself or everyone else is going to laugh at you and keep doing whatever they've been doing.
Firstly as a commercial developer of over 20 years I have been burned so many times by Microsoft' continuous change of strategy (although i will confess this is usually because of some snobbery from their customers or competitors) that i have made a conscious decision to only target true cross platform UIs in future. The only thing that satisfies that is web/browser development - yes, it is the lowest common denominator but Web assembly and Blazor (or however you want to manipulate your HTML DOM) present a real opportunity for a true cross platform UI. There is no need to drag some bastard offspring of WPF/UWP badly over to the other desktop environments - just improve native integration with the browsers.
Secondly, do you really want Microsoft to be the keepers of 'the one true UI platform'? Of course not. Browser implementations are all but clones now, cross browser compatibility is much less of an issue (so lets not even mention IE, eh?).
WinUI will go the way of all of their other wasted efforts; I know I wont touch it with a barge pole and can tell you plenty of people in the development world wont either; not after being forced down the web path a few years ago by no serious cross platform Desktop UI tools for .Net Framework.
1. What gave Microsoft the commanding lead in development at one time was the quality and power of the UI designer. Even in Visual Basic 1 days, the UI designer was the core of the rapid application development (RAD) IDE, and copied by competitors. As WinForms shifts to .NET Core, and UI development in XAML (Xamarin, UWP) and HTML (Blazor) become dominant in MS development, the RAD UI designers are lacking. That takes a large part away from Visual Studio being a RAD tool when it comes to UI. MS needs to invest in some seasoned software developers at the same level of competence as the ones who originally made, and updated, the VB/VS WinForms UI designer. The current crop of MS developers apparently cannot cut it.
2. Back in the 80s and 90s, Mainsoft (and another company I cannot recall) ported the Win16 and Win32 APIs to UNIX, then Linux, and other OSs. The other company ported the VB runtime to those same platforms using Mainsoft's work. You could, literally, use the VB IDE on windows to write VB applications, then compile and run them on the other OSs. If they could do that back then, why cannot MS port WinForms to run on multiple OSs today?
A common thread here is that the quality, creativity, and production of MS developers 30 years ago is ahead of the what MS is hiring today.