← Back to context

Comment by MarcelinoGMX3C

19 hours ago

The deeper problem is that Microsoft keeps trying to solve GUI consistency at the framework layer instead of the design system layer. WinForms, WPF, UWP, WinUI -- each one a new framework, each one eventually abandoned.

Apple solved this by treating the design system as the product and letting the framework be invisible. Microsoft has it backwards every time.

> The deeper problem is that Microsoft keeps trying to solve GUI consistency at the framework layer

I really don't think that's the fundamental issue.

TFA points out, and I agree, that the fundamental issue is political: competing teams across different divisions coming up with different solutions to solve the same problem that are then all released and pushed in a confusing mishmash of messages.

I haven't written a line of code for a Windows desktop app or extension since early 2014, when the picture was already extremely confusing. I have no idea where I'd begin now.

My choice seems to be either a third party option (like Electron, which is an abomination for a "native" Windows app), or something from Microsoft that feels like it's already deprecated (in rhetoric if not in actuality).

It's a million miles from the in the box development experience of even the late zero years where the correct and current approach was still readily apparent and everything you needed to move forward with development was available from the moment you opened Visual Studio.

There's just so much friction nowadays, starting with the mental load of figuring out the most acceptable/least annoying/most likely still to be supported in 5 - 10 years tech to use for solving the problem.

  • Honestly, things like Electron are quite literally the problem!

    All of people’s modern desktop woes begin and end at the browser. Here’s why: the late 2010’s push into the cloud made JavaScript all-the-rage. A language the creator made in pretty much a weekend coding session.

    There naturally is major business incentives powering this. SaaS made things MUCH easier for delivering software.

    Fast forward 15 years and MSFT is full in on TypeScript. It’s a disease that starts with MsOffice and percolates to the whole OS (same as what’s happening in copilot).

    .Net is actually elegant in many ways. You have PowerShell, VB .Net, C#, F# etc. languages of many paradigms all targeting the same bytecode (and supported by the OS).

    And this is being replace by a fun little JavaScript thingy.

    • That may be how JavaScript started, but unless your claim is that JavaScript hasn't changed at all in the thirty years or so since then, your argument is a complete non-sequitur.

      5 replies →

Being a 70's child, in computing since the mid 80s you made me almost spill my Monday coffee.

What a laugh, do you want the examples on Apple's side?

  • I mean Cocoa and SwiftUI are more consistent in the sense that a lot of stuff automatically adapts when Apple changes styling. And they certainly have less churn and more focus compared to Microsoft.

    Basically it's been Objective-C and Cocoa since around 2000, later on Swift and then also SwiftUI. That's not too bad for 25 years.

    And in contrast to MS, you didn't get abandoned when you were sticking to the official frameworks. Quite contrary, you basically got the switches from PowerPC to x86 to ARM almost for free for example.

    Apple is not perfect by any means, but in this regard I truly think they are ahead of Microsoft.

    • Sure, if we ignore the stuff and bugs they still have, the missing features in SwiftUI and performance regressions, or the iPhonisms brought to macOS with Catalyst.

      The reboot of frameworks based in OpenGL with the Metal rewrite.

      And many other things I am not bothering with since all those OS System N releases, A/UX UI framework, Teligent based documents,....

      13 replies →

  • The evergreen question of "how do you go back and/or close an app on IOS?"

    • This one caught me completely off guard when opening YouTube the first time on an iPad: Accidentally clicked on a wrong button and got stuck in a "please subscribe to premium" modal. No amount of swiping or tapping outside the popup would help, only thing left was killing the entire app.

      This experience put a major dent in my perception of the "Apple has the most intuitive UI" narrative.

      5 replies →

    • Maybe just the circles I run in but these are not evergreen questions in my experience. I don't even know what "go back" is supposed to mean here, or for that matter what it would mean in a Windows application. Is there a system level "go back" in WinAmp/Excel/SimCity/Photoshop I've never seen before?

      8 replies →

    • I feel that some people are just too old to get used to the swipe based ui. I mean friends of mine who just keep buying the only phones with (screen based) back and home buttons.

      9 replies →

You can't just take 40 years of Win32 apps and add the Metro design language, touchscreen compatibility, or dark mode system-wide. WPF nowadays has a skin that imitates WinUI, so at least Microsoft is trying.

  • Sure, but you could have had a uniform design language for the last 3 or so frameworks.

  • Right, but you can make basic adjustments to the theme to fit the rest of the system better, which took them all the way until Windows 11 to realize.

The deeper problem is that all these layers are still in use somewhere within Windows. Try to give your Ethernetcard a fixed IP Address for example. On your way to the correct setting (which has visually looked that way when I was still going to school) you will move through maybe 3 or 4 layers of UI paradigms like a freaking media archeologist. Each of the newer layers dumbed things down and kept the old thing as a fallback.

Meanwhile in MacOS they dumb things down without a fallback.

The only people who appear to make serious attempts at improving the usability of computers are the likes of KDE and other Linux desktop environments. It used to be the way that Linux was the thing you used despite its shortcomings compared to commercial OSs..

I agree. Except that WinForms has not been abandoned. In fact, it's one of the supported paths in the modern .NET stack.

  • WinForms is a layer built on top of raw Win32. So it's not portable.

    Even though Wine exists, Win32 calls can only be made from Win32 programs, not native Linux programs. So a WinForms app using the latest dotnet would need to run the Windows version of dotnet under Wine, and not use the Linux version of dotnet.

    • True, but: Microsoft haven't made a better UI framework that's portable to Windows yet. Everything after WPF has near zero adoption, including (critically important!) by Microsoft itself.

    • >WinForms is a layer built on top of raw Win32. So it's not portable.

      Neither are SwiftUI and AppKity.

    • Mono used to have libwine embedded. You know, libwine exists as a library running and compiling Win32 natively under Unix. Instead of PE binaries you would run ELF Linux ones, but with nearly the same outcome.

      2 replies →

> Apple solved this

This comment written before Tahoe

  • Snide and subjective comments aside, you’ve clearly missed their point.

    Even if you take away subjective opinions on Liquid Glass, the point is that the core system updates things across the board.

    Unless apps have implemented custom drawing, you get a consistent-ish UI (for better or worse) across the system, whereas with windows you are beholden to whatever hodge podge of UI frameworks were chosen at the given time.

    • The size and losition of the traffic lights control is not dependent of the os the app runs on but on the os the app was compiled on. So things are not updated across the board

      2 replies →