Top
Best
New

Posted by naves 1 day ago

Microsoft hasn't had a coherent GUI strategy since Petzold(www.jsnover.com)
See also https://x.com/stevesi/status/2036921223150440542 (https://xcancel.com/stevesi/status/2036921223150440542)
740 points | 526 comments
shiandow 10 hours ago|
What I find must puzzling is that everyone seems to just be violating basic rules that had been in place for ages.

Things like:

- If you can't respond to a UI event wait until you can

- Menus should be tree structures

- Pressing alt should underline the hotkeys you need to access anything clickable

As well as just basic responsiveness or predictability. A 2000 era windows application may not have been pretty, and may well have several different styles all imitated from office, but at least I knew what everything did and when it was slow at least it did what I expected.

This meant I could start the computer, log in, potentially start and use several applications and only then turn on the screen. Nowadays that has no chance of working because even to log in I need to press enter or click some button (which one depends on how I logged in previously, maybe) before I can even start typing and doing so eats a random amount of keystrokes while the damn log in screen loads to do its one damn job.

loeber 3 hours ago||
It's because we went from the Desktop environment, where rules were well-documented and standardized, to the Web/Mobile environment, where rules had to be reinvented and, for the most part, were not.

We've lost design idioms, which is a huge tax on users everywhere. I've been mad about this for years: https://essays.johnloeber.com/p/4-bring-back-idiomatic-desig...

weitendorf 2 hours ago|||
Over the past year I've started thinking a lot more about design and UI work, and I think it's basically impossible to design things, or create design systems, that appeal broadly to different types of users in a cross-platform way.

I personally love dense UIs and have no expectation of doing certain kinds of work on a phone or low-powered device like a chromebook, phone, or bottom-barrel laptop. But if you're a company trying to sell products to a broad user base, you want to try to design in a way that works for those kinds of users because they still might be end-users of your product. And there's a good chance that those platforms may be where someone first evaluates your product (eg from a link shared and accessed on a mobile device) even for the users who do plan on using more powerful desktop devices to do their work.

So instead we get these information poor, incoherent (because it turns out proper cross-platform, cross-user design is much more difficult than just getting something that works cross-platform for all users on its surface) interfaces. I guess I'm writing this just to add, web/mobile have complicated things partially because more than just requiring their own distinct patterns, they each represent a distinct medium that products try to target with the same kind of design. But because they're different mediums, it's like trying to square a circle.

DanielHB 29 minutes ago||
It is absurd that there is no standardized UI toolkit, or rather that the web browser _is_ the standard with is characteristic _lack_ of user interaction idioms.

The fact that there are multiple platforms for UIs* is a huge failure of the industry as a whole. Apple, Microsoft and Google could have had a sit down together at any point in the last 20+ years to push some kind of standard, but they decided not to in order to protect their gardens.

*: a standardized UI platform doesn't necessarily mean a standardized platform. Just standardization of UI-related APIs and drawing.

threetonesun 7 minutes ago||
My guess 10 or so years ago was that Google would be the first to bake Material UI into browser with web components, and then any browser would essentially reuse that to extend out whatever style they wanted. It really seemed like the way the web (and Google was heading). Instead we got bad Material UI knock-offs in about 45 different UI frameworks.
jlarocco 35 minutes ago|||
The rules didn't have to be reinvented - web/mobile devs chose to ignore them.
SarahC_ 4 hours ago|||
WinForms - It just works.

Any system that needs a straightforward UI for kicking things off, stopping them, logging them, and dragging data files into them..... WinForms.

Bugfree, hardened by the test of time, works on Windows X, Y and Z.

Everything else is just consumer silver sprinkles, and involves faffing around with multiple config files and obscure layout issues.

khelavastr 5 hours ago|||
Some Microsoft managers started suppressing people who reported internal defects, instead of leveling their teams up
pfdietz 4 hours ago||
That sounds like Goodhart's Law in action.
khelavastr 19 minutes ago||
Bad metrics. That's why Microsoft cleaned house of midlevel managers a couple years ago. But the culture remained in places.
stronglikedan 59 minutes ago|||
- clicking a checkbox's label should select/deselect the checkbox

This is one that I hold my devs accountable for. No, I shouldn't have "put it in the spec", because it is the fucking spec.

iamcalledrob 9 hours ago|||
We've ended up in a world where power users have been forgotten. Not out of malice, but out of a misguided aim to reduce complexity and achieve consistency with the web.

I would argue that desktop is the platform for power users, and its future depends on them. The keyboard shortcuts, the micro-interactions, the window management -- this stuff is all important when you're using a system for 8+ hours per day.

Yet we risk desktop experiences becoming less useful due to the UI becoming "dumber" as we keep shoehorning websites onto the desktop. Website UI is dumb. It's mouse driven, keyboard is an afterthought. There's no consistency, and you have to re-invent the wheel every time to get the details right (almost never happens).

rigonkulous 8 hours ago|||
>We've ended up in a world where power users have been forgotten.

I think its more like the OS vendors have stopped being operating system vendors, and are now - instead - vendors of eyeballs to advertisers.

The less the user is GUI'ing, the more they are just watching, placid, whatever else is on their screen.

For native apps to survive, they need to not be platform-specific - i.e. web apps, which require a browser and all its responsibilities - but rather cross-platform, reliable, predictable on all platforms - i.e. dissuaded from using native, but rather bespoke, UI frameworks.

This is attainable and there are many great examples of apps which are in fact, old wheels not re-invented, which still work for their particular user market.

I have the most respect for apps I can use on MacOS, Windows, and Linux - with the same hotkey/user experience on all platforms, equitably - and the least respect for apps which 'only run on one of them', since that is of course nonsense in this day and age.

The cognitive load of doing a web app that can do all the things a native app can do, is equivalent to the load required to build a cross-platform app using native frameworks, so ..

cineticdaffodil 21 minutes ago|||
It seems you fumbled your starmenue click, the start menue will be right back, right after these messages.
vovavili 7 hours ago||||
>i.e. dissuaded from using native, but rather bespoke, UI frameworks.

Based on my experience, I would be quite reluctant to rely on any non-native cross-platform desktop UI framework that is not web-based. These tend to be either less performant, look outdated or are bug-ridden.

throwaway2037 5 hours ago|||
What about Qt? It is the gold standard for cross-platform desktop UI frameworks.

It is (1) performant (C++-based), (2) does not look outdated, and (3) not bug-ridden.

iamcalledrob 3 hours ago|||
Qt apps don't feel great on macOS, though it's by far the best for mac-ish UI. Dropbox was Qt for a long time and I'd argue it worked well for them. Its easy to fall into "uncanny valley".

On Linux, Qt apps feel a bit off in GNOME, though you can never satisfy everyone as its the wild west.

I think Qt also suffers from not really being anyone's favourite.

On the one hand, you have web developers who tend to not really appreciate the nuance of the desktop as a platform. They're not going to advocate for Qt, it's not CSS/HTML/JS.

On the other hand, you have native Mac developers who love Apple's toolkits (AppKit, maybe SwiftUI). They're not going to advocate for Qt either.

Lastly, you have native Windows developers who have been burned so many times they don't advocate for anything in life anymore.

gr4vityWall 2 hours ago||||
I think Qt is only missing well-written, feature-complete bindings for a major JS runtime, including support for hot reload.

Developing UIs without hot reloading is too painful.

irishcoffee 2 hours ago||
I think what you're asking for has existed for a long, long time. QML.
gr4vityWall 18 minutes ago||
QML doesn't have a way to define interfaces with JSX and doesn't integrate with the wider JS tooling. From my very limited experience, it still feels too close to the C++ world.
vovavili 3 hours ago|||
In my experience:

- Qt Widgets worked fine, but looked like a piece of software made in 2013;

- QML looks stylish and is a very nice language, but had a lot of weird bugs.

Neither of these are issues I'd run with if I were to make a web app.

irishcoffee 2 hours ago||
Widgets looks like whatever you want them to look like, if the feel like they're from the 2010s its because the implementer made that choice, not because of a limitation in qtwidgets.
rigonkulous 1 hour ago|||
That's your prerogative, but web-based UI's have their hard limits, and native cross-platform desktop UI's are no more/less problematic than the browser.
jen20 8 hours ago|||
> I have the most respect for apps I can use on MacOS, Windows, and Linux - with the same hotkey/user experience on all platforms, equitably - and the least respect for apps which 'only run on one of them', since that is of course nonsense in this day and age.

No. I want things like keyboard shortcuts to reflect the platform norms of where the app is running (macOS in my case). A shared core is fine, but the UI framework must be native to be acceptable. Ghostty is a "gold standard" there.

This is why most web apps are lowest-common-denominator annoyances that I will not use.

rigonkulous 7 hours ago||
Indeed, if the framework is sensible, keyboard shortcuts reflecting platform norms is entirely attainable in a manner that developers don't have to bother with it, much, if they don't want to.

There are plenty of examples of cross-platform UI's surviving the hotkey dance and attaining user satisfaction. There are of course poor examples too, but that's a reflection of care, not effort.

marcos100 8 hours ago||||
Mozilla removed a lot of power-user features and customization from Firefox claiming that their telemetry showed that few users used them. That's the reality now, nobody wants to develop and maintain things for the 1%.
shmeeed 6 hours ago|||
>their telemetry showed that few users used them

I wonder if they ever stopped to think that power users are the ones that disable telemetry immediately upon install.

jasonlotito 5 hours ago||
That's not remotely universal, but they did consider that. It's immaterial.
hliyan 7 hours ago||||
Sometimes this is a self-fulfilling prophecy. It is the novice users who, over time, become power users through repetitive usage. If there are no user efficiency gains to be had through experience in a UI, then it just prevents the emergence of power users. Users just have to wait until a product manager or designer somewhere notices their pain and create a new feature through 10x the effort it would have taken to simply maintain the lower level shortcuts (e.g. keyboard accelerators, simple step automations).
ShroudedNight 8 hours ago||||
Was it the same 1% that was using each of the long-tail features? I suspect that by refusing to invest effort in at least some amount of niche features, we essentially alienate _everybody_
iamcalledrob 7 hours ago||||
Personally, its not so much about customisation as it is consistency, quality, and attention to detail.

Being able to keyboard through menus as standard. Focus being deeply considered and always working as expected.

Compact UI elements -- in the 90s/00s we decided buttons should be about 22px tall. Then suddenly they doubled in size.

bityard 7 hours ago|||
Browsers like Vivaldi that cater to power users are gaining in popularity. They are not trying to be the next Chrome, they are just out to serve their niche well.

Firefox has nothing to differentiate itself from Chrome at this point.

webstrand 3 hours ago|||
Container tabs, independent proxy config (chrome only respects system-wide proxy), vertical tabs, and functional adblockers are the four big features for me.
kristofferR 7 hours ago||||
Try installing Sidebery or a good adblocker on Chrome.
throwaway2037 5 hours ago||
I use AdBlock on Chrome. It is excellent. Do you not like it?
pxc 3 hours ago||
Go to an adblock test page in Chrome and compare it to Firefox with uBlock Origin. Chrome can't block some ads, and some of the ads it can block leaves behind empty containers.
encom 7 hours ago|||
>Firefox has nothing

Not only that, but for a time, Firefox seemed to be copying everything Chrome did, maybe as a way to stop the exodus of users. But people who wanted Chrome-y things were already using it, and people who didn't might as well, because Firefox was becoming indistinguishable from it.

God I wish Mozilla would be made great again. It's tragic how mismanaged it is.

ethbr1 6 hours ago|||
> It's tragic how mismanaged it is.

Is it mismanaged? Sure, they spend a fair amount on administration. Sure, they spend about 10% on Mozilla Foundation stuff. But they still spend ~2/3 of revenue on software development.

And they're somewhat stuck between a rock and a hard place.

If they try to evolve their current platform, power users bitch. If they don't evolve their current platform, they lose casual users to ad-promoted alternatives (Chrome and Edge).

And they don't really have the money to do a parallel ground-up rewrite.

The most interesting thing I could see on the horizon is building a user-owned browsing agent (in the AI sense), but then they'd get tarred and feathered for chasing AI.

Part of Mozilla's problem is that the browser is already pretty figured out. After tabs and speed and ad blocking, there weren't any killer features.

mrguyorama 32 minutes ago|||
To a first degree, nearly everyone who installed Chrome did so because of Google putting "Runs best in Chrome" on every page they own and including it with every single possible download, including things like Java updates!

Almost nobody chose Chrome. Microsoft had to change how defaults were managed because Chrome kept stealing defaults without even a prompt.

People use "the internet", they don't give a fuck about browsers. Firefox only got as high a usage as it did because of an entire decade of no competition, as Internet Explorer 6 sat still and degraded.

Chrome was installed as malware for tens of millions of people. It used identical processes as similar malware. It's insane to me how far out of their way lots of "Tech" people go to rewrite that actual history. I guess it shouldn't be surprising since about a thousand people here probably helped make those installer bundling deals and wrote the default browser hijacking code.

It should be a crime what Google did with Chrome. They dropped Chrome onto unsuspecting users who never even noticed when malware did the exact same thing with a skinned Chromium a couple days later. Microsoft was taken to court for far less.

How was Mozilla supposed to compete with millions of free advertising Google gave itself and literal default hijacking?

runjake 2 hours ago||||
> We've ended up in a world where power users have been forgotten. Not out of malice, but out of a misguided aim to reduce complexity and achieve consistency with the web.

Power users are less susceptible to suggestion and therefore less profitable. They have largely moved to OSes that do not interfere with their wishes, allowing them to make their own choices about what they can or can't do/run (Eg. Linux).

hypersolo 4 hours ago||||
This resonates deeply. I build native macOS apps in Swift/AppKit and the difference in keyboard-first design between native and web is night and day.

On macOS, if you use standard NSResponder chain and menu items properly, you get Cmd+Z undo, text field navigation, menu bar keyboard access, and accessibility basically for free. The framework was designed around the assumption that users would become experts.

Web apps actively fight this. Every Electron app I use has broken Cmd+` (window cycling), inconsistent text selection behavior, and that characteristic 50-100ms input lag that you stop noticing until you switch back to a native app and remember what "responsive" feels like.

The sad irony is that making a power-user-friendly desktop app is actually less work if you go native, because the frameworks already handle the hard parts. Going web means you have to manually reimplement every platform convention, and almost nobody does.

b00ty4breakfast 3 hours ago||||
I know this isn't really your main point but I don't think they've been trying to reduce complexity but rather increasing ease-of-use for the end-user*. Those things are often completely at odds with each other in software as I'm sure you know.

*well, that seems to have been their goal in the past; nowadays it just seems like they've been trying to funnel windows users to their other products and forcing copilot into everything.

liendolucas 8 hours ago||||
If you become a power user you realize that nothing matches the power of the command line. And at that point you also realize that are better OSes that allow you to fully explode the true computing power that is terribly limited and constrained by a GUI.
layer8 7 hours ago||
Nonsense. Do you read and write your email using the command line? I use Mutt and Vim for that, and that’s not the command line. GUI with power-user support is just as efficient as Mutt and Vim. Did you use curl to read this thread and submit your comment? I use Firefox with Vimium C, which allows most web pages to be navigated and operated efficiently by keyboard.
dmitrygr 2 hours ago||
Wait, mail clients other than mutt exist?
butlike 2 hours ago||||
The issue is that everyone wants a full-featured remote with only "on, volume, and channel changing" buttons.
jlarocco 32 minutes ago||||
> We've ended up in a world where power users have been forgotten.

I think the world changed. "Power users" in the traditional sense use Linux and BSD now. Microsoft and Apple dropped them when they realized how lucrative it would be to dumb things down and make computers more like cable TV.

mghackerlady 5 hours ago||||
I'm planning on writing a desktop (I've wrote about some of my goals here before) precisely for this reason
graemep 8 hours ago||||
> Not out of malice, but out of a misguided aim to reduce complexity and achieve consistency with the web.

The web is not consistent itself. Lots of sites, and most web apps, invent their own UI.

tomrod 8 hours ago||||
This is why, for me, year of the Linux desktop was 2008. It's been atrocious since then.
croes 4 hours ago|||
In the future it will all be done by AI, no need for GUI. Just write or say what you want to do

Hopefully /s

MichaelRo 6 hours ago|||
Well, Alt+Tab in Windows is supposed to switch windows. That's unless you're in Microsoft Edge where obviously, it switches tabs. Inconsistent and annoying.
hbn 2 hours ago|||
Android and Chrome worked like this for a hot minute too. I assumed the idea was to promote webapps to look like they're first-class citizens, but in practice it's just bizarre and confusing UX.
ptaffs 6 hours ago||||
Browser tabs are the fault here and browsers are trying to be OS environment, so Alt+Tab is useful for major task switching. I agree it's inconsistent and annoying, but I like Alt+Tab as a way to try to find the window I'm writing that email to someone.
Gracana 5 hours ago|||
I hate this too. You can turn it off. In Settings, go to System->Multitasking and change "Show tabs from apps when snapping or pressing Alt+Tab" to "Don't show tabs."
hbn 2 hours ago||
Or better yet, Settings > Apps > Default apps > select a different browser
kogasa240p 2 hours ago|||
Because everything got made for smartphones and touchscreens while desktop users are left to suffer in the mediocrity.
kerblang 5 hours ago||
> This meant I could start the computer, log in, potentially start and use several applications and only then turn on the screen.

I mean... well... responsiveness matters to me too, and I am impressed by such inspired productivity, but... I'm also confused. Why not turn on the screen - the monitor, right?

Now thinking about how gui lag might impact the sight-impaired, tangential as that is...

shiandow 3 hours ago||
It was meant as an example, not a productivity tip ;-)

Anyway the real point is that it's just easier to use something if you don't need constant visual feedback. Being able to use something blind is more than just an accessibility issue it is just better in general.

mwcampbell 17 hours ago||
> WPF was good

As someone who saw what impact WPF had on average users running average hardware in the late 2000s to early 2010s, I disagree.

In 2011, my brother was in seminary, using an average Windows Vista-era laptop that he had been given in 2008. When he was home for Christmas in 2011, we were talking about his laptop, and he told me that the Logos Bible software ran sluggishly on that laptop. He said something about how, for reasons unknown to him, the current version of Logos required advanced graphics capabilities (I forget exactly how he phrased it, but he had learned that the slowness had something to do with graphics). Bear in mind, this is software that basically just displays text, presumably with some editing for adding notes and such. At the time, I just bought him another laptop.

A few years later, I happened to read that Logos version 4 was built on WPF. Then, remembering my brother, I found this Logos forum thread:

https://community.logos.com/discussion/6200

This shows that Logos users were discussing the performance of Logos on machines with different graphics hardware. For a program that was all about displaying and editing text, it shouldn't have mattered. WPF had made a bet on then-advanced graphics hardware for reasonable performance, and that was bad for these users. And that's just the one example I know about.

fsloth 10 hours ago||
"WPF had made a bet on then-advanced graphics hardware for reasonable performance, and that was bad for these users. "

OTOH WPF is today surprisingly strong GUI platform if you just want to get your Windows GUI out there.

It runs really nicely even on low end hardware. All the nice styling and blending techniques now _just work_ even on the most cheap low end laptop.

The fact it's over decade old means all the LLM:s actually know really well how to use it.

So you can just guide your LLM to follow Microsoft best practices on logic development and styling and "just add this button here, this button here, add this styling here" etc.

It's the least annoying GUI development experience I've ever had (as a dev, non-designer).

Of course not portable out of the box (avalonia is then the ticket there).

If you want 3D, you can just plug in OpenTK with OpenGL 3.3. Decades old _but good enough for almost everything_ if you are not writing a high perf game.

Really, WPF plus OpenTK is a really robust and non-surprising development platform that runs from old laptops (eg. T14 Gen 2 per my testing) onwards.

I've been doing a sideproject using WPF and OpenTK - .net works really great - here is a sample video of the whole stack (from adashape.com)

https://youtu.be/FM_iuB3-0aA?si=j7kS68ZVenmPwvAO&t=34

fleventynine 14 hours ago|||
I had the misfortune of writing a complicated WPF app from scratch circa 2010-2011. Performance using the WPF widgets was terrible compared to HTML/Javascript/Blink; we ended throwing away most of the WPF code other than the main shell and a few dialogs, reimplementing the importantant stuff with immediate-mode Direct3D/Direct2D to get the necessary speed.

I recall wasting a lot of time staring at decompiled .NET bytecode trying to understand how to work around many problems with it, and it was clear from the decompiler output that WPF's architecture was awful...

n8cpdx 15 hours ago|||
It goes back pretty far. Nowadays the controversy is electron vs native (where most windows devs would consider WPF/.NET a native option).

But if you read books from the 2000s, there was much discussion about the performance overhead of a VM and garbage collected language; something like WinForms was considered the bloated lazy option.

I’m sure in a few years computers will catch up (IMO they did a while ago actually) and Electron will be normal and some new alternative will be the the bloated option - maybe LLMs generating the UI on the fly à la the abomination Google was showing off recently?

FWIW Apple has made a similar transition recently from the relatively efficient AppKit/UIKit to the bloated dog that is SwiftUI.

pipeline_peak 14 hours ago||
What have you heard about SwiftUI being bloated?
n8cpdx 11 hours ago||
My lived experience. Maybe bloated isn’t the right word, but attention to performance just isn’t there. Try using any swift UI app on iPhone or Mac. Try resizing a swift UI app window on Mac.
jshier 4 hours ago|||
Yeah, it's not bloated, there are just a lot of surprising and weird performance holes, especially on macOS. Even on iOS there's dumb things like, if your List cell's outer view isn't a specific type, List won't optimize for cell reuse, and it will start dequeuing cells for every item in the List eagerly. Wrap your actual cell type with a VStack or something and it will work properly, only dequeuing visible cells. It can be really nice to work with, but man, some of the implicit behavior, performance other otherwise, is shocking.
hypersolo 4 hours ago|||
[dead]
seltzered_ 15 hours ago|||
A notable example I remember from around 2010 was when Evernote dropped WPF, supposedly due to blurry text issues but probably also performance (remember when we called it EverBloat?)

Can't find the original blog post about it but here's a couple mentions of it:

- https://www.edandersen.com/p/evernote-has-no-patience-drops-...

- https://www.reddit.com/r/csharp/comments/x0nu7h/comment/im9k...

VorpalWay 9 hours ago|||
Blurry fonts was my main issue with WPF. I get headaches from blurry text and the colour bleeding from ClearType just makes the headache worse.

Fortunately for me, I had mostly switched to Linux by that time already, where it was at the time relatively easy to just enable grey scale AA with full hinting.

In recent years this has gotten worse again with modern software incorrectly assuming everyone has a High DPI monitor. My trick has been to use bitmap fonts with no AA, but that broke in recent versions of electron, where bitmap fonts are now rendered blurry. So I had to stay on an old version of vscode from last year, and I will be looking to switch to another editor (high time anyway for other reasons).

xmcqdpt2 6 hours ago||
emacs + bitmap font for me and I'm continually shocked when I have to use something else by how it is blurry and laggy.
ack_complete 3 hours ago|||
WPF originally had two major rendering issues. One was the lack of pixel snapping support, and another was gamma correction issues during text rendering, particularly for light text on a dark background (due to an alpha correction approximation, IIRC). The two combined led to blurry text in WPF applications.

These were finally improved for WPF 4, since Visual Studio 2010 switched to it and had a near riot in the betas due to the poor rendering in the text editor.

rincebrain 16 hours ago|||
I would argue that was less that WPF was the wrong life choice and more that Microsoft shouldn't have bent the knee to Intel's antitrust push to say their crap hardware was sufficient. [1]

[1] - https://arstechnica.com/gadgets/2008/03/the-vista-capable-de...

mwcampbell 8 hours ago|||
Your argument presupposes that we should accept escalating baseline hardware requirements as good or even necessary, for a desktop computing world that was, from the user's perspective, doing pretty much the same thing as before. I reject that.
bombcar 15 hours ago|||
Apple had been doing GPU-accelerated GUIs since the early NeXT days; it was certainly possible on hardware weaker than what Vista required.
runjake 15 hours ago|||
Minor correction: Apple introduced GPU-accelerated GUI in 10.2 with the introduction of Quartz Extreme.

Display PostScript did not have GPU acceleration, as far as I know.

https://en.wikipedia.org/wiki/Quartz_Compositor?#Quartz_Extr...

cyberax 20 minutes ago||||
Calling that "the GPU acceleration" on Mac OS X was a bit overstating the things. It supported rotations, compositing, and some other bulk operations, but text and precise 2D graphics was rendered on the CPU.

It _still_ is not trivial to render high-quality 2D graphics on the GPU.

Zardoz84 13 hours ago||||
Windows 3.1, with the aproppiated drivers and modern SVGA card, had accelerated 2d graphics. Accelerated GUIs don't even need GPU or 3d.
ShroudedNight 8 hours ago||
What does "GPU" mean here? Previous uses of the term seemed to imply "dedicated hardware for improving rendering performance" which the SVGA stuff would seem to fall squarely under.
layer8 7 hours ago|||
The term GPU was first coined by Sony for the PlayStation with its 3D capabilities, and has been associated with 3D rendering since. In some products it stood for Geometry Processing Unit, again referring to 3D. Purely 2D graphics coprocessors generally don’t fall under what is considered a GPU.
ShroudedNight 6 hours ago||
It has been associated with 3D rendering, but given that things like the S3 86C911 are listed on the Wikipedia GPU page, saying "Accelerated GUIs don't need GPU" feels like attempting to win an argument by insisting on a term definition that is significantly divergent from standard vulgar usage [1], which doesn't provide any insight to the problem originally being discussed.

[1] Maybe I've just been blindly ignorant for 30 years, but as far as I could tell, 'GPU' seemed to emerge as a more Huffman-efficient encoding for the same thing we were calling a 'video card'

layer8 5 hours ago||
I don’t agree with what you state as the vulgar usage. “Graphics card” was the standard term a long time, even after they generally carried a (3D) GPU. Maybe up to around 2010 or so? There was no time when you had 2D-only graphics cards being called GPUs, and you didn’t consciously buy a discrete GPU if you weren’t interested in (3D) games or similar applications.

In the context of the discussion, the point is that you don’t need high-powered graphics hardware to achieve a fast GUI for most types of applications that WPF would be used for. WPF being slow was due to architectural or implementation choices.

bombcar 2 hours ago||
That's the real takeaway - WPF should have degraded gracefully (read, full speed performance without the bling) but it didn't.
bombcar 6 hours ago|||
Most people consider GPU to mean "3D accelerator" though technically it refers to any coprocessor that can do work "for" the main system at the same time.

GPU-accelerated GUI usually refers to using the texture mapping capabilities of a 3D accelerator for "2D" GUI work.

kalleboo 14 hours ago|||
I mean Apple had a GPU-accelerated GUI in 1990, but probably not what we think of "GPU accelerated" these days

https://wiki.preterhuman.net/Apple_Macintosh_Display_Card_8-...

aleph_minus_one 9 hours ago|||
> Bear in mind, this is software that basically just displays text

Displaying text is surprisingly hard, as one can easily find out if ones dives into the big rabbit hole of font rendering.

mwcampbell 8 hours ago||
Yes, text shaping and layout are complex. My point is that the program wasn't doing anything that should have required a GPU, particularly for the resolutions that were common back then.
bgrainger 4 hours ago|||
The promise was that WPF would use hardware-accelerated libraries such as DirectWrite to put text on the screen even faster than GDI+ (using the CPU) could do. The reality turned out to be quite different: multiple layers of abstraction and just plain inefficient WPF code [1] meant that users needed powerful CPUs and GPUs just to get reasonable performance.

[1] https://faithlife.codes/blog/2019/06/improving-wpf-text-disp...

chris_wot 5 hours ago|||
I’m knee deep in refactoring LibreOffice code around text rendering. I can assure you, it’s complex but it doesn’t require a GPU!
nottorp 12 hours ago|||
Hmm doesn't that sound like Apple's Tahoe/iOS 26? Effects upon effects upon more effects.
cyberax 16 minutes ago|||
Not really. Ironically, WPF designers wanted to make things better by offloading the rendering onto the GPU. They also added DirectWrite that was supposed to provide high-quality text rendering with all the bells and whistles like layout for languages with complex scripts, in hopes of eventually offloading the text rendering as well.

But they just plain failed to execute well on this idea.

steve1977 12 hours ago|||
iOS 26 runs surprisingly smooth on my iPhone 12 Pro Max though.
nottorp 8 hours ago||
Runs like crap on my daughter's 12 mini.

Actually what does "surprisingly smooth" mean? Better than you expected? Or actually smooth?

steve1977 5 hours ago||
I had an Xperia for a while but kept my iPhone and then installed the iOS 26 beta on it. Expectation was that it would run but be pretty painful. Surprisingly, even the beta ran so fine that I sold the Xperia and switched back to iOS. And it's still my daily driver.
wiseowise 10 hours ago|||
2008 edition of “let’s rewrite it in react”.
sylens 9 hours ago||
2008 had its own version of React and it was called Adobe Air
beAbU 7 hours ago||
Adobe Air was just Flash wearing an ill fitting business suit.
ecshafer 2 hours ago||
The fact that software to show the bible needs a GPU is funny in some kind of dystopian way. That is the kind of software that should work in 50k of memory.
MarcelinoGMX3C 16 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.

bartread 10 hours ago||
> 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.

sizeofdouble 10 hours ago||
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.

cedilla 9 hours ago||
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.
9dev 9 hours ago|||
Yeah, thank you. Also, JavaScript today means TypeScript—an arguably extremely capable type system actively developed by Microsoft—and several, modern runtimes with a big standard library and solid asynchronous primitives. There are a lot worse scripting languages out there.
sizeofdouble 8 hours ago||
Folks misunderstand the whole point just because I mention TypeScript. Sure it’s a capable and elegant language. Doesn’t change the fact that it’s a bloated monstrosity on the desktop.

Think about it: it transpiles to JavaScript. Even if it’s the most elegant language in the world doesn’t change the fact that it’s a world of bloat.

Stacks on stacks on stacks. And yet people are complaining about .Net? Come on. Lol

vouwfietsman 1 hour ago|||
Transpilation and bloat are orthogonal. Javascript being bloated or not is also a relative: consider Python, which is much slower than js, and much more memory hungry.

To further argue your original point: chrome & electron are the only reason desktop is still around, both Microsoft and Apple tried their very hardest to build a walled garden of GUI frameworks, rejecting the very idea of compatibility, good design, and ease of use, until they were surpassed by the web, and particularly Google, showing that delivering functioning applications to a computer does not require gigantic widget libraries, outdated looks or complicated downloads & install processes, but is in fact nothing more than a bit of standardization and a couple MBs of text.

All this electron & web hate is so incredibly misplaced I don't even know where to begin. Have you tried making a cross platform mac/win native app? I have, its like being catapulted into the stone age, but you're asked to build a skyscraper.

StilesCrisis 4 hours ago|||
Why would transpiling change anything? C++ was once transpiled into C. I appreciate that you personally think JavaScript is poorly designed (I mostly agree!) but that doesn't mean it's slow. V8 can do miracles nowadays.
sizeofdouble 7 hours ago|||
Doesn’t matter how it changed if every desktop app ships its own browser.

Remember we’re talking about GUIs. Typescript is great for the browser but it should stay there.

Now, JavaScript can be okay for example: Qt Quick/QML it works quite well in the desktop. But that’s purpose-built scripting.

pjmlp 14 hours ago|||
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?

steve1977 12 hours ago|||
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.

pjmlp 11 hours ago||
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,....

noodletheworld 10 hours ago||
Come on, you think SwiftUI has more bugs than the ten different Microsoft frameworks?

There are just more people encountering them because the developers are concentrated on using one thing.

It’s not perfect, but a compared to Microsoft, calling Apple out for having bugs is a little rich isn't it?

I pose to you, if the Microsoft offerings are so compelling, why are the serious players using 3rd party wrappers like QT and Avalonia?

It’s because the first party offerings are not compelling. They’re a disaster dumpster fire. And buggy.

pjmlp 10 hours ago||
If Apple products are so compelling why are so many devs using Electron, React Native and Flutter on macOS, to the point it deserved being mentioned at WWDC 2025 State of the Nation Keynote?

My point was don't throw stones when having a big glass roof as well.

Apple isn't the perfection you make out to be, also has a rich history of failures, and only did not went bankrupt due to sheer luck of doing the right decision when there were not many remaining to take.

jhbadger 9 hours ago|||
That's a different issue. Things like Electron are popular not because native development is buggy, but because most developers these days are web developers. They know Javascript. They've never written anything in C/C++ or even the slightly friendlier Swift, Rust, or Go. Electron lets people who only know the Web make desktop apps.
pjmlp 9 hours ago||
Nope, it is the same issue now being worded around to sell the Apple is shiny story above.
rTX5CMRXIfFG 8 hours ago||||
> If Apple products are so compelling why are so many devs using Electron, React Native and Flutter on macOS

That is not how the decision making for cross-platform works. You choose those alternatives knowing that they are crap in many respects, yet accept the trade offs because you want to save money on dev hours.

pjmlp 6 hours ago||
The whole point was the greatness of Apple platform.
rTX5CMRXIfFG 4 hours ago||
That’s not the point being argued either, nor it being perfect. It’s just about Apple’s UI frameworks being more coherent and consistent across all their own platforms, unlike Microsoft. Even Android developers who’ve done a bit of work on iOS easily agree that Apple’s SDKs are far better designed and behave more predictably than Google’s.
tantalor 6 hours ago||||
They use React Native and Flutter because they want to target more than just MacOS/iOS
pjmlp 6 hours ago||
Meaning they don't worship Apple UIs as the ultimate design?
tantalor 6 hours ago||
It's about the tradeoff.

Option 1: spend double the effort, embrace Apple's UI

Option 2: do it once, ship faster, make more money.

paavope 9 hours ago|||
Nobody in this thread is claiming Apple is perfect, just ahead of MS in UI consistency and _less_ buggy
pjmlp 9 hours ago||
"Ahead" with yes but attitude.
steve1977 5 hours ago||
None of the UI frameworks is perfect. Neither the ones from Microsoft, nor the ones from Apple, nor Qt, nor GTK (lol...), nor the web-based ones.

I'm just saying that in my personal opinion and experience, the ones from Apple have the best yay-to-wtf ratio. Your mileage may vary.

Iulioh 13 hours ago|||
The evergreen question of "how do you go back and/or close an app on IOS?"
cloud-oak 11 hours ago|||
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.

atombender 7 hours ago|||
The YouTube app has non-standard and nonsensical UX on every platform. It's Google's fault, nothing to do with Apple.

Case in point: The YouTube app for Apple TV. Everything (pausing, playing, changing subtitles) has been done opposite to the standard player found in every other app. You cannot use the main button to pause and resume, for example. Recently they broke swiping. Normally, you swipe the remote to navigate between UI elements such as squares in a grid or in lists with a light touch. It's very fluid, like a touch screen. But the YT app has added severe "inertia" to touch gestures, and you now have to "fling" your finger on the remote trackpad to navigate. Everything feels syrupy and stuck.

YouTube and Amazon's Prime TV app are the two worst apps I've ever used on Apple TV. I believe they both use some non-native UI toolkit that doesn't respect native OS conventions and doesn't even try to. Pretty incredible given the size and budgets of these companies.

chuckadams 7 hours ago||||
The YouTube app does the exact same thing on Android. I ran into this just yesterday on my gf's phone, as I'd just added her to my family plan, tried to verify the settings on her phone, and it trapped me on an upsell screen for YT Premium that I had to kill the app to get out of.
simonask 10 hours ago|||
How is bad UX in the YouTube app Apple's fault? You can mess up Android's back button as well.
Iulioh 10 hours ago|||
Because Apple does not enforce uniformity
justsomehnguy 10 hours ago|||
If Ah, yes, problems with the UI on the OS which for 99% consists of modals is not the OS vendor problem, noted.
mckn1ght 12 hours ago||||
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?
Iulioh 12 hours ago||
I was referring to IOS, not MACOS

Androids do have universal back button at the bottom on the phone or the same swipe gesture if you want but iphones do not.

Sometimes swipe (the direction and position is a guessing game), sometimes and x (right or left ) and the behavior is inconsistent too (back or close)

There are some guidelines but more often than not seems like every app has it's own method and you need to get used to it

bayindirh 12 hours ago||
In iOS, task manager and closure can't be overridden. You swipe right to return to previous application. You can swipe left for a couple of seconds if you didn't intend to do that.

You swipe up and remove the application from the stack, all processes of the application is killed.

Background processing has strict limits, and you need permissions to run longer than that, and for some use cases, there are no recourse. OS swaps you out or freezes the app.

If you want an app to work in the background, don't kill it, period. Push notifications are handled by the OS and is not hindered by this.

Iulioh 12 hours ago||
What about going "back" INSIDE an application?

Think for example reddit, you open a thread, how do you go back?

You open the "reply window, now ho you ho back? Maybe close it directly?

I Android this is all handled by the same function and is often ranked as the most frustrating design choice in IOS

bayindirh 11 hours ago|||
I'm not using Reddit in any capacity since they have started giving their content for LLM training, so I can't help you with that, but looking at 4-5 third party applications right now, they all have a left arrow at top left to go back.

They all are very different applications and have very different designs, yet the arrow is there.

To be honest, I baffled at your question for a second or so, because I never thought about that, yet the method is so universal that I was not thinking about it at all.

t-sauer 11 hours ago|||
There is a common way to go back (swipe from the left edge of the screen). Some apps just don't integrate well and ignore the platform patterns.
bayindirh 11 hours ago||
I believe swiping from left to right is common for both Android and iOS.
pndy 9 hours ago||
Android has both a swipe gesture or a widget that simulates buttons that used to be at the bottom of the screen
bayindirh 9 hours ago||
...and iOS has both an arrow at the top left and a swipe gesture. I can't see how they are that different.
teekert 11 hours ago||||
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.
dsego 9 hours ago|||
It's not just that you need to get used to gestures, it's that they are not discoverable at all, and that they can be awkward to perform with mobility issues, old hands, short fingers, etc. It's easy to make the wrong gesture, eg. the phone detects a swipe down instead of left to right, more so if you are holding it in one hand, so it's finicky and frustrating to have to rely on it as the only way of doing a common action. Why is it so wrong to have a simple navigation bar, it doesn't take up any more space than the hideous notch at the top?
alpaca128 9 hours ago||||
I could get used to touch gestures if they were more consistent and tolerant enough for wrong inputs. It may work in one app but not another. One app expects me to swipe from left to right to go back, another wants me to swipe from top to bottom for the same thing. It may mark an email as unread if I start the swipe a pixel too far away from the screen edge. On Android swipe gestures may vary even on different phones from the same brand. In iOS, tapping the top edge of the screen means scroll to the top. Except in the Photo app, where it means "scroll to the top of the current section, or almost the top, or do nothing and make the user guess if they just tapped the wrong way".

Meanwhile when there's an X button or arrow to the left I always know what it's going to do aside from one or two overly creative Android apps.

david422 6 hours ago||||
Android has an option to enable these buttons on a toolbar at the bottom, I always turn it on.

Why change what works fine? Maybe that's the definition of being too old, can't be bothered to change to new things.

ioseph 8 hours ago||||
It's not just mental, as you age you lose moisture in your skin and with that accuracy with touch devices.
teekert 1 hour ago|||
Hmm, would explain that frustrated pokey interaction I see elder people often throw at touchscreens... you know, chin up, peering down through their reading glasses, going for a 4th, 5th try at something...
ShroudedNight 7 hours ago|||
Is that what's going on? So many touch gestures seem to rely on landing in the right 2mm diameter area, but the minimum reliable resolution for touch seems to be a 4mm diameter circle. It's even worse for my father, even though cognitively, he would have no trouble understanding the hypothetical requirement. It's also noticeably worse during the depths of winter.
Iulioh 11 hours ago||||
I'm in that group.

It's not "getting used to", I feel like that gesture is less practical. It involves or using the "circle" to assist on how to use the gesture (creating a black void on the screen that you need to plan your use of the phone around) or having the swipe that 1) is not as reliable in my opinion and 2) can be triggered accidentally

For me is like claiming that touch screens on cars are the future and people are too old to get used to it.

teekert 58 minutes ago||
Maybe saying "too old" is disrespectful indeed, what I meant was more that my kids grow up with swiping everywhere but we grew up with (hardware, then touchscreen) buttons and the older we get the harder it is to get used to new use paradigms.

Swipes are of course nice because they allow for the same interactions without taking any screen real-estate. And I have to say it quite consistent across the iOS apps I use.

justsomehnguy 9 hours ago|||
I feel that some people are just forgetting what the reason it's easy for them is because they learned that "swipe based UI" ages ago.

When I get handed iPhone I have no clue on how to even open an additional tab in Safari and any finger gestures do not do the things what I expect nor there is a lick of indication on how to do something. It's all just a memorized magical incantations at this point. But hey you are familiar with them so it's easy to bash on everyone who is not in yours eco-system.

bayindirh 12 hours ago||||
It's still easier than Windows CE though.
robertoandred 4 hours ago|||
You swipe backward. Been that way for twenty years.
Kwpolska 12 hours ago|||
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.
gf000 12 hours ago|||
Sure, but you could have had a uniform design language for the last 3 or so frameworks.
solarkraft 12 hours ago|||
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.
atoav 9 hours ago|||
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..

GaProgMan 14 hours ago|||
I agree. Except that WinForms has not been abandoned. In fact, it's one of the supported paths in the modern .NET stack.
zerr 12 hours ago|||
It lacks hardware acceleration.
RedShift1 12 hours ago||
Does it need it?
Dwedit 13 hours ago|||
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.

pjc50 11 hours ago|||
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.
DeathArrow 13 hours ago||||
>WinForms is a layer built on top of raw Win32. So it's not portable.

Neither are SwiftUI and AppKity.

anthk 10 hours ago|||
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.
Dwedit 5 hours ago||
Every time I tried following alone with the winelib/winemaker documentation, I always ended up with an ELF that had to be invoked using "wine" to run. Nothing that could self-load any of the wine dependencies.
anthk 3 hours ago||
Mono supported WinForms. But IDK how did they integrate it with the CIL.

But for sure they used WineLib.

TiredOfLife 14 hours ago|||
> Apple solved this

This comment written before Tahoe

dagmx 12 hours ago||
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.

TiredOfLife 10 hours ago|||
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
dagmx 4 hours ago|||
This is incorrect.

It’s still dependent on the OS it runs on AND the SDK it compiles against (not the OS it was was compiled on).

But that is legacy bridging behaviour, and is not compiled into the app. Apple can and do change those with time.

For example apps that compile against macOS 15 are not opted into Liquid Glass when run on macOS 26 but will be once on macOS 27 according to their transition docs.

That doesn’t really negate the OPs point.

dsego 9 hours ago|||
I found this out when I tried running an old app I compiled on MacOS several years ago, it still has the old title bar gradient and traffic light.
direwolf20 12 hours ago|||
That's a bad thing. It breaks apps. Apple has decided to stop supporting apps that aren't continually updated. Microsoft hasn't.
audunw 11 hours ago||
I don’t think Microsoft’s approach to perpetually support old apps is unequivocally a good thing. It seems to be getting them into a deeper and deeper mess over time.

As a consumer I prefer Apples approach. If I were an industrial customer relying on old software to operate my machines i would prefer Microsoft’s approach.

gunsle 16 hours ago||
Insightful comment
ZuLuuuuuu 8 hours ago||
2 things Microsoft failed to do in the last 15 years are:

1) They abandoned their mobile phone, tablet, and wearable strategy. So, today if you develop a native Windows application, it will only work on desktops and laptops. That is it. It is not attractive for a developer to learn a whole new UI framework just to target a single form factor. And I don't know if there is any solution for this at this point, they shouldn't have completely abandoned those markets.

2) They did not back 1 UI framework for a long time (I mean 10 years+), instead they did significant changes to their UI framework strategy every 3-4 years. It takes a huge time for developers to trust, learn and develop complex and polished apps in a UI framework. Also it takes a long time for a UI framework to become mature. If you change your UI strategy every few years, you will never have complex and polished apps written with it.

To be honest I am not sure if Windows will ever be able to recover in the long term and keep its market share. The only reason it seems to be alive is because enterprise runs on Windows and it is hard to change that.

I feel like an Apple + Google dominance will be more likely in the long term for desktop operating systems. I am not sure if Google will be able to avoid the first mistake I wrote above but they are working on bringing Android to desktop. It is a good idea but it requires at least 10 years of supporting and polishing it despite not getting much traction. But if Google persists, we might be all using MacOS and Android on desktop 20 years from now.

cogman10 6 hours ago||
Yeah, a striking difference between windows and linux at this point is that the linux UI frameworks are hyper stable. If I want to make a linux desktop app, I'll choose QT or GTK. Heck, if I want to make a windows and macOS app, I'll probably choose QT or GTK.

What do I chose with Windows? Who knows. It literally changes every time I look into it.

That's just insane.

It's gotten so bad that probably the right way to do a modern windows desktop app is react native. At least you could predict that it will stay up to date with the ever shifting decisions at MS to create and abandon UI frameworks.

electroly 3 hours ago|||
Windows Forms is the answer you seek. It still receives updates to this day. I've been writing and shipping Windows Forms apps for 25 years. High DPI, dark mode, Edge web views, Blazor integration, we've got it all. Users don't even need to install .NET these days with self-contained deployment.

I will boldly claim Windows Forms is more stable than Gtk and Qt. Don't let random teams at Microsoft confuse you because they released yet another unrelated framework that you don't have to use. They are engineer-sirens trying to lure you from the true path. Let them pursue their promotions in peace while we rely on a stable workhorse.

starik36 5 hours ago||||
On Windows, I would chose WinForms. Even today, even over WPF. It's as stable as QT and GTK, still supported, and has a large community of contributors and 3rd party vendors.
mghackerlady 5 hours ago||||
win32 seems to be stable, albeit a bit dated. It's good enough for small things (at least good enough for m$ to use)
cogman10 5 hours ago|||
All the various windows UI frameworks are stable, but not supported and not receiving new updates.

That's the problem.

And what makes matters worse is because of all the shifts, the documentation throughout MS is in just varying states of outdated. For example, this document which recommends using UWP [1] to handle high dpi problems. But of course, UWP (which was the right way to do gui in Win 10) is now defunct for win ui.

[1] https://learn.microsoft.com/en-us/windows/win32/hidpi/high-d...

okanat 5 hours ago|||
WPF is also stable. Microsoft's UI strategy is similar to keeping all of Motif, GTK2, Qt5 alive while engineering new stuff into Qt6 without deprecating anything.

Btw Linux UI is not by any measure stable. It is the furthest thing from stable.

senko 3 hours ago|||
GTK 2, GTK 3, or GTK 4?
cogman10 47 minutes ago||
Various versions of GTK which introduced breaks but didn't really change the core philosophy of how you build a GTK app. IMO, this is the preferable way to evolve an ecosystem.

The problem microsoft has is instead of making "Win32, but with these extentions or these APIs removed", heck even as a separate "framework". What they did instead was "You know what's hot right now? XML. So let's make an XML based UI framework. Actually, it's javascript and css, so let's do that. Actually, people really like electron so let's do that."

That is to say, it is possible and I dare say easy to migrate an application from GTK 3 to GTK 4. It's basically impossible to migrate a WPF app to UWP. You have to rewrite the whole thing.

adabyron 6 hours ago|||
Strong agree!

They had great devices before iOS/Android and then again after. That Lumia phone was awesome. They had one of the best cameras. Their live tiles they had on the phone & desktop OS were really good. Even Windows 8 had a cool CRM app in its infancy that tried to link all your social media & email accounts together.

They killed all of that even with multiple chances to win people over. It seemed they wanted to win the new markets in less than a year.

For as much flack as Google gets for short lived awesome products, Microsoft is right up there. Which is why when they've announced new things like Blazor, MAUI, etc., no one expects them to live long enough to trust their apps on.

I also strongly question their enterprise MOAT when most kids are growing up on Apple & Google devices the past decade. Microsoft seems to lack long term strategy.

hbn 1 hour ago|||
> They abandoned their mobile phone, tablet, and wearable strategy

They were way too late to make a dent. Ballmer made the mistake when the iPhone came out to not get their ass in gear to compete. Microsoft's first potential real competitor to the iPhone came with Windows Phone 7 at the very end of 2010. The iPhone was announced in January 2007 and they didn't have anything to compete until almost 4 years later. I'm not sure how they could have recovered from that by the time they gave up on Windows Phone/Mobile in 2017. Anyone who worked in mobile sales at that time knew most people who did buy a Windows Phone ended up returning it when they realized none of their apps were there. They could have had apps if they recognized the iPhone's threat earlier and reacted appropriately.

Also worth mentioning that in their time competing for mobile they did a fairly hard reset of the platform 2 more times for Windows Phone 8 and Windows 10 Mobile. Go find what developers who tried to keep up have to say

https://news.ycombinator.com/item?id=15432720#15434572

sumtechguy 4 hours ago|||
totally.

MS ended up where it was at because there was basically NO upgrade path between the few different GUI frameworks they had. They broke the whole thing in 2002 when they decided .NET was the way.

You had to basically retool your whole GUI for whatever they were pushing at the time. Then they basically abandoned win32 GUI items and put them in mothballs. Then change their minds every other year.

No sane person is going to pick that model of building an application. So the applications kinda stagnated at whatever GUI level they came into being with. No one wanted to touch it. If I am doing that why am I sticking with windows? I can get the same terrible effect on the web/mobile and have a better reach.

Even their flagship application windows is all over the place. If you click on the right thing you can get GUI's that date back to windows95. Or maybe you might get a whitespaced out latest design. It is all over the place. It has been 10 years at this point. They should have that dialed in years ago.

I do not think Google will be able to pay attention long enough to have a stable GUI. Apple maybe. As for MS you can see it from the outside there are several different competing groups all failing at it.

MS needs another 'service pack 2' moment. Where they focus on cleaning up the mess they have. Clean up the GUI. Fix the speed items. Fixup the out of the box experience (should not take 4gig of used memory just to start up). Clean up the mountain of weird bug quirks.

sdwr 6 hours ago||
Didn't Google give up on chromeOS? For all their faults, at least Microsoft has a desktop os
mrtksn 20 hours ago||
I remember when ChatGPT exploded and Bing had it integrated, the idea was brilliant because unlike ChatGPT it didn't have information cut-off since it can access the web. I was very excited to ditch Google for AI chat with web access.

How did MS actually implemented it though? After a few messages the chat is blocked because MS did not choose to walk the extra mile and maybe compact the context so that their product can be actually usable.

Of course OpenAI, Perplexity and others later implemented that properly and its integral part of modern AI chat and I actually ditched Google for the most part. Had Microsoft done it, they might have had a shot in replacing Google and maybe becoming the AI Chat provider. But no, Microsoft can't have a well thought UI to provide a delightful UX.

IMHO it's a culture thing. Lack of cohesion is a result of it, I used to be annoyed by Apple that doesn't allow to ship its own UI libraries together with the app so to support old versions etc. but Apple had it right, thanks to the limitations UI is coherent.

0x1ceb00da 13 hours ago|
> Apple that doesn't allow to ship its own UI libraries

You can just render on a canvas like flutter and KMP. Most end users don't care

supliminal 19 hours ago||
There’s a poster on here who keeps posting and re-posting about their dinner with a Microsoft executive and how they were told Microsoft is all-in on enterprise. Waiting for that copy-paste to make its way over here.

Microsoft keeps footgunning things so hard I think even enterprise might be reluctant to go with them moving forward [0]. I don’t have Netcraft numbers in front of me but I doubt things have notably improved even if they do have a strategy shift to enterprise which includes crapping all over Windows for no good reason.

I’m personally glad FOSS is going strong but that’s a complete aside.

[0] We got burned by Azure as I’m sure many other enterprises have, and they did exactly nothing to remedy/compensate the situation, SLAs be damned. At this point our strategy is to move off of reliance on any Microsoft/windows tech. We moved off of ActiveDirectory not too long ago. Bing/Edge/etc honestly who cares.

mapontosevenths 19 hours ago|
Microsoft was so focused on the enterprise they forgot that enterprises are made up of individual users.

Any trade-off that favors the enterprise in lieu of the user actually benefits nobody in the long term.

nine_k 17 hours ago|||
Crucially, at enterprise sales, those who make putchase decisions are not the actual users (except maybe for Outlook and Excel). They sometimes play golf together with vendors though. This is how stuff like MS Teams of Oracle Forms gets sold: it checks all the compliance boxes, has support, an SLA, "is industry strength", etc.
ProfessorLayton 39 minutes ago||
This is true until it isn't though. Blackberry was doing great with enterprise users until people refused to give up their iPhones even at work.
mohamedkoubaa 19 hours ago|||
The end state of genAI is that the end user is the enterprise
Krssst 19 hours ago||
The end state of genAI could as well be a few billionaires being their enterprise and everybody else being unemployed or working at the factory. Robots are not there yet (far from it) and someone needs to build and maintain the thing as well as food for everyone. High unemployment could drive salaries down and make lots of thing unavailable to the common people while making humans cheaper than automation for boring manual work.

That's an extreme scenario but today's politicians are not very keen into redistribution of wealth or prevention of excessive accumulation of economic power leading to exceeding the power of the state itself. I see nothing preventing that scenario from happening.

sph 11 hours ago|||
> High unemployment could drive salaries down and make lots of thing unavailable to the common people while making humans cheaper than automation for boring manual work.

‘I wanted a machine to do the dishes for me so I could concentrate on my art, and what I got was a machine to do the art so now I’m the one doing the dishes’

mikkupikku 9 hours ago||
But you already have a machine that can do the dishes. Like doing the laundry, people forget the machines they already have doing 90% of the work. Soon enough artists will forget that computers can do 90% of their work too.
exe34 12 hours ago|||
The French will lead the way.
Krssst 4 hours ago|||
The French are on their way to put a far-right government in power next year, don't count on them.
mapontosevenths 7 hours ago|||
I imagine that the rabble will need to eat only a few before the rest catch on.
iamcalledrob 9 hours ago||
Desktop, especially Windows, is such a mess.

It's 2026. We're running 8+ cores and 32gb ram as standard. We can run super realistic video games at high frame-rates.

Yet on the same machine, resizing a window with rectangles in it is laggy on every platform except macOS (where there's a chance it's not laggy).

icedchai 4 hours ago||
The bloat is pretty incredible. Consider my Amiga 500 could resize windows without lag on a ~7.1 mhz 68000 and 512K of RAM, almost 40 years ago.
bjourne 3 hours ago||
Resizing was based on a wireframe system and windows weren't repainted during resizes.
icedchai 3 hours ago||
Yes, I agree, it's not apples-to-apples... but we're talking orders of magnitude in CPU, RAM, and "GPU" power.
hypercube33 6 hours ago|||
4-6 cores and 8GB standard* 8 Cores and 32GB+ is the higher end.
duped 5 hours ago|||
imo the resizing test is not useful because it's a useful test of a common operation that needs to be optimized, but because it flexes on every major subsystem of the GUI framework.

Another example is startup time. Time to first frame on screen should be less than 20ms. That doesn't mean time until first content is rendered, but time until _all_ content is rendered (loading dialogs, placeholders, etc are better than nothing but entirely miss the point of being fast).

The second example is why even though I understand why developers pick tauri/electron/webviews/etc I can't get over how fucking slow the startup time is for my own work. None of them could show a blank window in under a second the last time I tried.

hu3 7 hours ago||
Sorry but neither Linux or Windows lag to resize windows in any of my 4 machines.

They range from old laptops to a Ryzen 7 9800X3D workstation.

Just yesterday a friend's father needed help setting up their second-hand old laptop with an old i5 processor. I slapped KDE and there was no lag to be seen.

Bonus point that Windows and some Linux distros have sane, intuitive window management. Whereas with macOS I keep seeing someone suggesting some arcane combination of steps to do some basic things with replies to the effect of "OMG thank you so much, this needs to be known by more people!!!"

Topfi 5 hours ago|||
I see frame drops when opening the start menu on a clean Windows 11 install on my work laptop (Intel Quad with 32GB memory from two years ago). I have seen the same on 3D Vcache Ryzens on systems from people who claimed there was not lag or sluggishness. It was there and they saw it once pointed out, the standards for Windows users have simply gotten so low that they’ve gotten used to the status quo.

On MacOS, meanwhile, Finder refuses to update any major changes done via CLI operations without a full Finder restart and the search indexing is currently broken, after prior versions of Ventura where stable functionality wise. I am however firm that Liquid Glass is a misstep and more made by the Figma crowd then actual UX experts. It is supposed to look good in static screenshots rather than have any UX advantage or purpose compared to e.g skeuomorphism.

If I may be a bit snarky, I’d advise anyone who does not see the window corner inconsistencies on current MacOS or the appealing lag on Windows 11 to seek an Ophthalmologist right away…

KDE and Gnome are the only projects that are still purely UX focused, though preferences can make one far more appealing than the other.

iamcalledrob 3 hours ago||||
If we're talking a simple "hello world" window then sure, you can resize that at 60fps on pretty much any system.

But most nontrivial apps can't re-layout at 60fps (or 30fps even).

They either solve it by (A) allowing the window to resize faster than the content, leaving coloured bars when enlarging [electron], or (B) stuttering or dropping frames when resizing.

A pleasant exception to this I've noticed is GTK4/Adwaita on GNOME. Nautilus, for me at least, resizes at 60fps, even when in a folder of thumbnails.

On the Mac side, AppKit, especially with manual `layoutSubviews` math easily hits 60fps too. Yes it was more complex, but you had to do it and it was FAST.

xoac 35 minutes ago||
For all the grief they are getting GTK4/Adwaita/Gnome is doing a lot for performance and consistency of experience.
brennanpeterson 6 hours ago|||
My work laptop will stall on resize constantly, and I suspect it is due to the mess of security and backup software. Windows does have an ecosystem problem.

I am also baffled by the multiple control points. I can log in to mail in 3 places. Settings have 3 with different uis....it is gross.

VirgilShelton 4 hours ago||
I used to be a software test engineer at Microsoft in the late 90's and early 2000's. What I learned is that 60% of their business was International because of their language support. Also most of their customers are business customers locked in to using their Windows Server Domain system for corporations. These corporations also run office and Sharepoint and build custom apps using office. This is why they have so many different ways to build apps on Windows. We are not the users they are targeting, they target the enterprise.
wg0 10 hours ago||
Java wanted to run your code everywhere so they basically wrote a byte code compiler and then wrote one vm per OS/architecture

I never understood.NET's purpose. What problem it exactly went out to solve? Did Microsoft want developers to be able to run their applications everywhere too? Absolutely not.

Sidenote - MFC is the ugliest thing you'll see. Yet they didn't mention another piece of work called ATL. Active Template Library.

WinForms were really decent and that was enough. Keep Win32 API and a managed wrapper around it as WinForms and that would have been more than enough.

.

simonask 10 hours ago||
FWIW, x86 has always been a pretty moving target with many instruction set extensions, especially for various SIMD features. But even something fundamental like `popcnt` has a separate CPUID flag, even though Intel considers it part of SSE4.2.

Targeting the broadest possible variant of x86-64 limits you to SSE2, which is really not very capable outside of fairly basic float32 linear algebra. Great for video games, but not much else.

Also keep in mind that .NET originated right at the cusp of x86-64, which again is a whole different architecture from its 32-bit predecessor. Most native apps used to ship separate binaries for years.

And of course, I think Microsoft was aware of their intrinsic dependency on other companies, especially Intel. I can see how the promise of independence was and is enticing. They also weren't interested in another dependency on Sun/Oracle/whoever maintains Java at the moment. While Windows on ARM64 is still in a weird spot, things like .NET are useful in that transition.

Lastly, the CLR is different from the JVM in a number of interesting ways. The desktop experience with the JVM is not great, and Java is a very bad language. It makes sense to do your own thing if you're Microsoft or Apple.

wg0 7 hours ago||
I doubt that .NET was meant to solve the problem of underlying variation in instruction set of Intel processors because that concern does not exists for 98% of the applications anyway they rarely have to look for the compiler settings and for the rest of the 2%, the compiler flags are huge set of options and that kind of tweaks are NOT available for .NET anyway.

Additionally, such applications that want to exploit certain underlying processor's instruction set have no way to do so without detecting CPUID and landing into so called "unmanaged code" because .NET is all about very high level IR that even has object oriented features as well.

simonask 7 hours ago||
The .NET JIT compiler absolutely does query CPUID flags and generates different optimized code depending on available features, as well as the performance profile of each CPU model. This is similar to always passing `-march=native` to GCC.

This can have a huge effect on a wide range of applications, not just those using particular CPU features. For example, each libc implementation typically has a separate implementation `memcpy()` for each set of CPU features.

wg0 5 hours ago||
Okay thank you. I need to read more on the subject the.
icelusxl 1 hour ago||
The "Performance Improvements in .NET" blog lists the new JIT support for instruction sets each year.

https://devblogs.microsoft.com/dotnet/performance-improvemen...

pjc50 10 hours ago|||
> What problem it exactly went out to solve? Did Microsoft want developers to be able to run their applications everywhere too? Absolutely not.

So .. initially it was "Microsoft Java", a managed language with tight integration into the Windows APIs, and non-portable. That was .NET Framework. A while ago they realized that even Microsoft didn't want to be tied to one platform, and moved to the cross-platform ".NET Core". It now occupies a similar role to Java but is IMO nicer.

raincole 9 hours ago|||
> I never understood.NET's purpose. What problem it exactly went out to solve?

Java. Java is the problem .NET attempted to solve.

hnthrowaway0315 5 hours ago|||
Is MFC that bad? I'm inclined to learn it now and see it with my eyes. I dabbed into Win32 programming for a bit (really just a bit, like a few days) and it was tedious, but not really anything bad.
wolfi1 10 hours ago|||
in its beginning .NET was a wrapper around ActiveX and Com-objects and it tried with C# to replace Java (disregarding the Virtual J++ attempt). as their own JVM did not meet the license agreement they made with Sun. so there were several reasons and not every reason being one a developer would care about
AdvancedCarrot 10 hours ago|||
I think the answer is simple - they wanted to Sherlock Java.
emddudley 5 hours ago||
For others like me that didn't know the term Sherlock:

It means "To obsolete a unique feature in third-party software by introducing a similar or identical feature to the OS or a first-party program/app." The term stems from Apple's 2002 release of Sherlock 3, which made a popular third-party app named "Watson" irrelevant.

https://en.wiktionary.org/wiki/Sherlock#Verb

starik36 5 hours ago|||
WinForms still exist, still supported, still getting new features. And it's open sourced. https://github.com/dotnet/winforms
IshKebab 10 hours ago||
> Active Template Library

Ugh that brings back bad memories. I remember it was supposed to be the answer to MFC. I did an internship where my boss wanted me to use it. It was very painful because it had basically no documentation at all.

geekraver 5 hours ago|
Wow, totally ignores the one framework Microsoft developed that was actually a pleasure to use (WinForms). Avalon sucked IMO; it was just a continuation of the fever dream at the time of making everything XML (or XAML in that case). MFC sucked because it was C++. WinForms was that brief Window of “modern programming language with simple, elegant GUI framework”.

I know it’s not a popular opinion, and I am sure there were reasons Microsoft abandoned it, but that was a brief few years when I actually enjoyed building GUIs on Windows.

skeeter2020 4 hours ago|
WinForms apps always felt "tight" compared to all the other options (the development experience and the end product), and there were lots of 3rd party controls available. If you were building windows desktop app in the early .NET days it sure seemed like the way to go, and those apps lasting so long looks like a supporting data point.

EDIT: just dug out a "memory magic" winforms app I wrote sometime in the early 2000's and ran it no problem, no weird looking non-native UI or long electron startup...

More comments...