... 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.
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
Biting the hand that feeds IT © 1998–2021