[HN Gopher] Microsoft hasn't had a coherent GUI strategy since P...
       ___________________________________________________________________
        
       Microsoft hasn't had a coherent GUI strategy since Petzold
        
       See also https://x.com/stevesi/status/2036921223150440542
       (https://xcancel.com/stevesi/status/2036921223150440542)
        
       Author : naves
       Score  : 761 points
       Date   : 2026-04-05 17:27 UTC (1 days ago)
        
 (HTM) web link (www.jsnover.com)
 (TXT) w3m dump (www.jsnover.com)
        
       | PaulHoule wrote:
       | The churn would have been much worse if Microsoft was rolling out
       | successful GUI framework after GUI framework. As it is you can
       | still write a Win32 app if that pleases you, or still write .NET
       | (and damn that runtime download!)
       | 
       | Microsoft has bought into 'make a web app' since 1988, they
       | introduced AJAX, they got flexbox and grid into CSS and numerous
       | HTML 5 features to support application UIs. They 'frikin _bought
       | npm!_. I use Windows every day but I almost exclusively develop
       | cross-platform systems based on the WWW, Java, Python, etc.
       | Whenever I have developed with .NET it has been for a cross-
       | platform front-end like Silverlight or Unity /itch.io.
       | 
       | I can't say I have a desire to make a native Windows GUI app when
       | I could make a web app: like if it worth doing from my computer
       | isn't it worth doing it on my iPad from anywhere with Tailscale?
       | For all the complaints about modern JavaScript it gives you the
       | pieces to make a very pleasant world in terms of DX and UX and
       | you certainly don't need to ship an Electron runtime for many
       | applications.
        
         | judah wrote:
         | Your post is touching on a key question: _why_ write a Windows-
         | specific app?
         | 
         | I'm a developer who has built and published several apps. I
         | want the biggest possible audience for those apps. Why would I
         | limit those apps to Windows? (Or even to any single
         | platform/OS?)
         | 
         | Web apps work everywhere. The web has grown increasingly
         | powerful and capable. Why would I invest in a technology that
         | can only run on a single OS? Doesn't make sense.
         | 
         | Just build for the web. You can package web apps for all the
         | major app stores using PWABuilder[0], no Electron needed. Just
         | fast, lightweight apps distributed by app stores and accessible
         | from the web.
         | 
         | [0]: https://pwabuilder.com. Disclaimer: I work on this
        
           | jemmyw wrote:
           | I used to get hung up on this native vs web thing. But when
           | it comes down to it, it's just one renderer or another unless
           | you're actually drawing the controls yourself pixel by pixel.
           | The sticking point is following the system style / theme. But
           | all the popular desktop OSs seem to have deviated on this so
           | much themselves I'm not sure how important this is.
        
             | skydhash wrote:
             | The DOM is very ill-suited for most UI. Too complex and
             | lots of missing features. It's a whole bag of unneeded code
             | and the resulting UI doesn't fit anywhere.
        
               | jemmyw wrote:
               | > The DOM is very ill-suited for most UI. Too complex and
               | lots of missing features
               | 
               | Can you expand on this, because I'm not seeing it myself.
               | The DOM, html+css is very flexible. It easily encompasses
               | most UI. Most UI is some kind of data display, so lists,
               | trees, tables, forms.
               | 
               | The need for JS might be what you're complaining about. I
               | think we might be stuck with it as a UI control language
               | forever.
        
               | skydhash wrote:
               | The DOM(and CSS) is primarily built for documents and
               | forms, even with the latest addition like Flexbox or Grid
               | layouts. It is closer to typesetting tools like troff,
               | latex, texinfo than any UI engines you can think of. And
               | some that are not needed, like the difference between
               | <i>, <a>, <span>, <strong>,...
               | 
               | Also with most GUI frameworks, there's some difference
               | between widgets like label, button, menu, checkbox,...
               | and containers that does layout management. And there are
               | not a lot of elements in both sets. This is the reason
               | why React Native has a very sparse components library.
               | With simpler implementation, you have a simpler rendering
               | path, and the developer have less elements to deal with.
               | 
               | Also some have ready-made implementation of really useful
               | widgets, like tree, grids, tables, lists, and other
               | dynamic things. You can find libraries for those on the
               | web, but the web implementation of scrollable container
               | is janky.
        
               | PaulHoule wrote:
               | The GUI system for the NeXT was based on the Display
               | PostScript system which in turn was based for the
               | PostScript system designed for rendering to printers.
               | Quartz in MacOS X is a further evolution of that.
               | 
               | Inside HTML 5 you can find facilities for rendering
               | documents and you can find facilities for rendering
               | applications, including those forms. There is not a clear
               | line between one and the other.
        
               | skydhash wrote:
               | PostScript was for rendering graphics to a printer with a
               | good emphasis on texts. Most of HTML is about marking up
               | and styling interactive documents. There's no clear line
               | between the two, but an API for applications UI has
               | different goals than one for document typesetting (even
               | interactive one).
               | 
               | HTML have a lot of tools for devex, but if you're going
               | for a good codebase and simple implementation for a
               | desktop application, QT is way easier.
        
               | neutronicus wrote:
               | I don't know about "most UI" but it's sure as shit ill-
               | suited for CAD (what I work on).
        
               | PaulHoule wrote:
               | In which case you get canvas, WebXR, etc.
        
               | l72 wrote:
               | Why don't we have more great UI toolkits for the canvas?
        
             | trueno wrote:
             | yea there's so many ways through this now. golang and wails
             | is great, rust and tauri is great. both seem to not feel
             | like the slug that is electron because they just use
             | whatever os native web view your os has.
             | 
             | for the dedicated more native stuff dioxus is kinda cool if
             | you don't want a web stack in the mix.
             | 
             | i'm enjoying golang and wails though paired with whatever
             | front end i want, all apps i've made perform execellent on
             | windows. bottom line = yeah i can't really think of a
             | scenario where i personally would ever write an app for
             | windows specifically.
             | 
             | i, like you, used to get hung up on native vs web
             | framework. i'd encourage you to give it a go, possible you
             | cede that mayhaps the native thing isn't as important as
             | you thought.
        
             | simonask wrote:
             | The inconvenient truth here is also that following the
             | system theme is an anti-feature for most apps. On the
             | desktop, you want your app window to be recognizable at a
             | glance, meaning the primary color should be the brand
             | color, etc.
             | 
             | I currently have open Chrome, Spotify, Discord, Aseprite,
             | and Zed. All of them look completely different, and that's
             | actively helpful for me, the user.
             | 
             | It's nice to follow the system's light/dark setting, and
             | obviously the _behavior_ of basic UI controls should be
             | unsurprising, but beyond that there 's no point in
             | "consistency".
        
               | PaulHoule wrote:
               | This. So often features to use system colors can cause
               | apps to be unreadable or just look like crap. The first
               | time I get a bug report that people can't read something
               | I will lock the colors the down, I just don't have time
               | for that.
               | 
               | Who says the system theme is well designed at all? Back
               | in the 1980s you could count on most text color
               | combinations on a Commodore 64 or an IBM 3279 or a PC
               | with a CGA working.
               | 
               | Today it is absolutely normal to type                  ls
               | 
               | on a Linux machine out of the box and if you are running
               | X or Wayland some of the file names are dark blue on a
               | black background and completely un-readable. To be fair,
               | if you are logging into a Linux machine on Windows with
               | ssh on CMD.EXE or most terminal software you get
               | similarly poorly chosen colors. (To be fair, MacOS does
               | do better!)
               | 
               | As a web developer it pisses me off because I am expected
               | to follow
               | 
               | https://www.w3.org/WAI/standards-guidelines/wcag/
               | 
               | and regularly my management gets legalistic looking
               | documents from customers complaining that we only have
               | 6.5:1 contrast on something and you know what I do... I
               | fix it. I wouldn't send anything to my tester that was
               | unreadable and if I did I'd expect her to put in a ticket
               | and I would... fix it. When MUI computes the coordinates
               | wrong and something draws 20px right of where it should
               | be... I fix it.
               | 
               | Whenever I've put similar tickets to the various parts of
               | the Linux desktop mafia they close it as "won't fix" and
               | often give me a helping of verbal abuse. Even Microsoft
               | occasionally fixes something (even if half a decade late)
               | and their people are polite.
        
           | kvuj wrote:
           | > Web apps work everywhere. The web has grown increasingly
           | powerful and capable. Why would I invest in a technology that
           | can only run on a single OS? Doesn't make sense.
           | 
           | For me, I see these following advantages:
           | 
           | - Performance; Native & compiled is king.
           | 
           | - Ram usage; Kilobytes vs Mega(giga?)bytes.
           | 
           | - UI control which integrates with the rest of the OS (and
           | updates when the underlying OS tweaks the UI)
           | 
           | From a business standpoint, I get your point that these
           | points don't really matter. Users have shown to not care in
           | the slightest at the bloat in programs.
           | 
           | However for code I write in my spare time, I would much
           | rather write my native Linux program in compiled code than to
           | ship a subpar experience to the few who will interact with
           | it.
        
           | bigstrat2003 wrote:
           | > Web apps work everywhere. The web has grown increasingly
           | powerful and capable. Why would I invest in a technology that
           | can only run on a single OS?
           | 
           | There are other options besides "web app" and "only one OS".
           | A cross platform app which uses something like GTK or QT will
           | be a _massively_ better experience for your users, one a web
           | app cannot hope to equal.
        
             | vscode-rest wrote:
             | What's an example of a well made GTK or QT app in your
             | opinion? And what would be the steel man Web app to compare
             | that to?
        
               | u8080 wrote:
               | Telegram Desktop (Qt)
        
               | vscode-rest wrote:
               | We might contrast that with Slack, yes?
               | 
               | This thread comes to mind:
               | https://www.0xsid.com/blog/wont-download-your-app With
               | Slack that's trivial, Telegram impossible.
        
               | u8080 wrote:
               | Except Telegram Desktop is opensource and they also have
               | full-functional Web version.
               | 
               | But tdesktop is really well-made Qt piece of software,
               | snappy, feature-rich and multi-platform.
        
               | vscode-rest wrote:
               | Interesting, at first pass I'd say the source
               | availability has little to do with the topic at hand. But
               | on second thought it might be rather significant. No
               | company would finance making 2x identical cross platform
               | apps, but if you have a pool of OS folks who are free to
               | contribute at their leisure, the calculus changes a bit.
        
             | wiseowise wrote:
             | A lot of grandeur but zero substance. Aside from
             | performance, what would being written in GTL/Qt bring to
             | VSCode or Obsidian?
        
             | PaulHoule wrote:
             | I know one of the GTK developers who dropped out of my
             | research group in the 1990s who's been in charge of
             | triaging tickets and he's the kind of guy who doesn't care
             | if there is just 1.05:1 contrast between text and
             | background and will refuse a one-line patch to make menus
             | render right in rootless X windows because he wants to
             | punish you for doing things in a way he thinks is wrong.
             | 
             | And he probably wonders why it is never "the year of the
             | Linux desktop" but hey it is OK because Red Hat Linux is
             | something enterprises subject their users to and if it had
             | the slightest bit of flair customers would complain.
             | 
             | So when I hear GTK I think _Nein Danke!_
             | 
             | In general Linux has the kind of fanbois problem that MacOS
             | had maybe 10 years ago. There are so many things that still
             | "just don't work" after years and they never get fixed
             | because you can live without them. For instance I can tell
             | you how to install some package like                  sudo
             | apt-get install mypackage
             | 
             | and that's all! I can make 10 pages of screenshots to tell
             | you to click and click and click and click and click to
             | install "mypackage" with the GUI [1] and you may wind up
             | looking at a spinner for 10 minutes or longer (eventually
             | you give up) and you might wind up corrupting your package
             | database and not being able to install or update anything
             | until you look up how to rebuild it. The Linux desktop is
             | stuck with having done the 20% of the work that gets it 80%
             | done and never does the rest of the work because you can
             | use the command line anyway.
             | 
             | [1] and you still might misunderstand it and need intensive
             | tech support
        
           | manytimesaway wrote:
           | > Web apps work everywhere. The web has grown increasingly
           | powerful and capable. Why would I invest in a technology that
           | can only run on a single OS? Doesn't make sense.
           | 
           | You mean the hypertext platform that has been shoehorned into
           | Java's paradigm, suffering from the same boof-o-rama as
           | Windows, and whose lowest common denominator to support must
           | be Safari for iOS?
        
             | bad_haircut72 wrote:
             | still works everywhere? the snark doesnt get you firther
             | than that
        
               | manytimesaway wrote:
               | Works everywhere on modern hardware only.
        
               | deafpolygon wrote:
               | Every time I open a browser on my aging Linux computer
               | (which is running the latest Linux updates), I'm reminded
               | of this...
        
               | wiseowise wrote:
               | Majority of software doesn't need to care about that.
        
             | PaulHoule wrote:
             | Safari isn't that bad for most applications.
             | 
             | Sure it is a hassle to get notifications working, but my
             | take on that for years as a desktop user was "I need
             | another source of spam about as much as I need to get
             | raped". For years I had bottom of the line Android
             | Tracfones and wondered "how is it people get so excited
             | about apps?" because they just didn't work but once I got
             | an iPhone I started to appreciate that the McDonald's app
             | would send me a notification when my food was ready.
             | Recently it was pointed out to me that the application
             | behind these cards
             | 
             | https://mastodon.social/@UP8/116086491667959840
             | 
             | really would benefit from notifications ("your photos are
             | ready!") and I am looking at the hurdles I can jump through
             | and it looks possible but weird. Like why would I want
             | people to install my app on the homescreen where it will
             | get lost on page after page of twisty little app icons that
             | all look alike?
             | 
             | Then there is that PWA boondoggle, there is another app in
             | that system that I can use to register those cards and it
             | is a clear case where I might want to do it outside of cell
             | coverage (say I was in the woods) save a form submission
             | and upload when I get back in range.
             | 
             | What can I say? That service worker system is insane,
             | something like Kubernetes that only Google could subject us
             | to. I mean, Google could have worked out the math for
             | synchronizing a local database to a remote database, by
             | then the Lotus Notes patents were mostly expired, we could
             | have gotten something good. Or Google could have added an
             | API to control the behavior of the browser cache. Instead
             | we got something half baked and barely reliable and then
             | Apple went out and made something a little bit worse. Had
             | it been a good standard to begin with the outcome could
             | have been entirely different.
        
           | pjmlp wrote:
           | Because many of those features aren't Web, rather Chrome OS
           | Application Platform, but apparently folks forgot everything
           | about IE history lesson.
        
           | DeathArrow wrote:
           | >Your post is touching on a key question: why write a
           | Windows-specific app?
           | 
           | Why write an anything-specific app?
        
           | direwolf20 wrote:
           | Features. Speed. Do your web apps only work in Chrome by the
           | way?
        
             | PaulHoule wrote:
             | I am a Firefox-first developer, almost everything I write
             | works in Firefox/Chrome/Safari without a lot of drama.
             | 
             | I have one application at work that loads a table with
             | 40,000 rows into a data grid that works really well on
             | Chrome and lags on Firefox, that's the one case where the
             | performance difference matters.
             | 
             | This year I've been interested in biosignals applications
             | that read data with the Web Bluetooth API and Web Serial
             | API which are ordinarily Chrome-only. I was about to get
             | one of my junk Android tablets out of mothballs when I
             | found there is Bluefy for iOS which supports the Bluetooth
             | API so I have no problem going to labs where they have a
             | really klunky HRV system based on a PC and show them
             | something sleek on my iPad and in 20 minutes i can
             | demonstrate to you, with your own physiology, everything
             | you actually need to know out of a big review paper on HRV.
        
           | voidUpdate wrote:
           | What happens when the user doesn't have internet access, or
           | only has very slow internet? What if they're on a metered
           | connection?
        
           | PaulHoule wrote:
           | Seems to me the point of the web is: no app store bullshit.
           | 
           | On the web if I want to publish a web app... I publish the
           | app. If Apple things my app isn't good for their business...
           | tough luck for them.
           | 
           | If I want to update a web app... I update the app.
           | 
           | If a user wants to use an app... _They visit a URL_ and _the
           | app is there!_ No having to face id, go looking for the app
           | in an interface that 's designed to hide the search function,
           | that is filled with spammy trash imitation apps (that somehow
           | get approved by the app store anyway)
           | 
           | All the time I hear somebody crying that their developer
           | account got canceled and I want to say "what did you expect?
           | the contract for a developer account is a suicide pact for
           | your business." Stay free!
        
         | bigstrat2003 wrote:
         | > For all the complaints about modern JavaScript it gives you
         | the pieces to make a very pleasant world in terms of DX and UX
         | 
         | There is no such thing as pleasant UX in a web app. The best
         | experience will _always_ be a native app, a web app is at best
         | a port in a storm solution.
        
           | vscode-rest wrote:
           | Figma is far superior to the native apps it replaced. As is
           | VS Code. Slack.
        
             | Anamon wrote:
             | One could (and I would) argue that they achieved that
             | despite their web-tech-based UIs, not because of. At least
             | those of us who were around for the days when most apps
             | were still native, do notice and get bothered by the input
             | lag, for instance.
             | 
             | Slack is, in fact, one of the worst offenders. It is so
             | incredibly sluggish. And it doesn't need to be, when I
             | compare it to the speed (and memory consumption) of Pidgin
             | with the Slack plugin.
        
               | PaulHoule wrote:
               | Async comm in web apps often keeps them responsive when
               | the native app experience is: spinner... spinner...
               | spinner... spinner... lock up the window and you can't
               | move it... spinner... spinner... spinner... "should i
               | reboot the whole machine first thing or should i try
               | killing the app with task manager and starting again?"
        
               | vscode-rest wrote:
               | Their killer feature, being able to share a link with
               | anyone at the company and instantly collaborate (live!),
               | is made far easier on the web platform vs native. "The
               | input lag" frankly does not matter in the big picture,
               | imo.
        
             | neutronicus wrote:
             | > As is VS Code.
             | 
             | That is, uh, controversial.
             | 
             | Along both "alleged replacement" and "alleged superiority"
             | axes.
        
           | wiseowise wrote:
           | > The best experience will always be a native app
           | 
           | Nonsense. The best experience is the one that solves user's
           | issue. Technology choice is orthogonal to that.
        
           | PaulHoule wrote:
           | When Windows wants to nag you it makes marketing-oriented
           | screens that I think are visually attractive in a commercial
           | way if not quite as 'cute', 'cool' and 's--y' as a gatcha
           | screen from a mobile game. These sure look like they were
           | drawn with an HTML-based rendering system and if they
           | weren't, they were certainly inspired by commercial art on
           | the web.
           | 
           | When MacOS wants to nag you it pops up a Liquid Glass
           | vandalized version of the 1999 retread of the modal confirm
           | dialog from the 1984 MacOS.
           | 
           | I wish both of them had NEVER OPEN A MODAL DIALOG THAT I
           | DIDN'T ASK FOR EVER AGAIN button that took 80% of the space
           | and a tiny little greyed-out link at the bottom that said
           | "maybe just maybe I want to hear about this in three years"
           | but from a graphic art viewpoint I laugh at MacOS.
        
         | tannhaeuser wrote:
         | Windows until 24H2 (when Edge and the last remnants of IE were
         | replaced by Chrome) supported HTML apps [1], introduced with
         | Windows 98 Active Desktop. They weren't used much but actually
         | not that bad for end-user needs.
         | 
         | [1]: https://learn.microsoft.com/en-us/previous-
         | versions/ms536495...
        
           | zanderz wrote:
           | It was decent, we shipped one but switched to .net because of
           | high dpi scaling issues IIRC
        
       | furyofantares wrote:
       | > Dead silence. One person suggested WPF. Another said WinUI 3. A
       | third asked if they should just use Electron. The meeting went
       | sideways and we never did answer the question.
       | 
       | > That silence is the story.
       | 
       | These LLMs are just awful at writing.
        
         | c-c-c-c-c wrote:
         | that part really didn't make sense to me. This is true for all
         | desktop platforms.
        
           | furyofantares wrote:
           | I agree, although I was talking about:                   Dead
           | silence. Here's what 3 people said (the opposite of silence).
           | Then the meeting went sideways (also the opposite of
           | silence).              The silence is the story.
           | 
           | WHAT SILENCE?
        
             | avazhi wrote:
             | He immediately said they never did make a decision, so
             | probably that indecision.
             | 
             | Having said that, this article feels like AI slop to me.
             | Couldn't get through it.
        
               | g-b-r wrote:
               | Just have a look at the final picture if you're unsure if
               | it's slop
        
             | lynndotpy wrote:
             | In a more generous interpretation, there was silence,
             | _then_ people said something. That makes sense.
             | 
             | But "That silence is the story." is still a pretty telling
             | non-sequitr, and it doesn't seem like the kind that comes
             | from sloppy editing.
             | 
             | The punchy "Thing. Thing. Thing." is used constantly. We
             | see it constantly in this article:
             | 
             | > 852 pages. Win16 API in C.
             | 
             | > Message loops. Window procedures. GDI.
             | 
             | > One OS, one API, one language, one book.
             | 
             | But those are minor sins. But in the end of the article,
             | Snover states that Microsoft pitched C++ in 2012. That's so
             | incorrect! The contents of this blog post are at least
             | partially falsified.
             | 
             | Plus, the thesis statement is nonsense:
             | 
             | > When a platform can't answer "how should I build a UI?"
             | in under ten seconds, it has failed its developers. Full
             | stop.
             | 
             | "Full stop" is a pretty heavy thing to end a nonsense
             | statement with. How an inanimate software platform can
             | "answer" things is not implicitly obvious, either. Is it a
             | human representative? Are they the docs? Is it through a
             | good UI?
             | 
             | The post is about Petzold's / Reccold's "Programming
             | Windows", but it is apparently 852 pages, so that certainly
             | wasn't answered in under 10 seconds either.
        
         | super256 wrote:
         | I felt fatigued after the second paragraph. All these LLM
         | tropes chained together are horrible to read.
        
         | stinkbeetle wrote:
         | Yes they really do a great job at mimicking awful human writing
         | of that horrendous style, whatever it's called. Post-TED NPR
         | style bougie blogging let's say.
        
         | operatingthetan wrote:
         | This site needs a no LLM submissions policy too.
        
           | grg0 wrote:
           | I flagged the post, don't even care how accurate it is. Go
           | send your AI slop to /dev/null, folks.
        
             | lynndotpy wrote:
             | I think you should look at the graphic. It's riddled with
             | inaccuracies and nearly-unreadable spelling mistakes and
             | mangled typography. I think that's plenty of a good reason
             | to flag it.
             | 
             | I think it really abuses the assumption of good faith and
             | the default to generous interpretation, because it forces
             | you to divorce the author from their own published work in
             | order to view them seriously. I suspect most of the
             | comments here are generously ignoring the included graphic.
             | But in the most generous view possible, the author is fine
             | with publishing wildly inaccurate statements.
             | 
             | I think this makes HackerNews much worse, and posts like
             | these should only be flagged.
        
         | skolskoly wrote:
         | I was weathering the excessive and confusing analogies and then
         | I read:
         | 
         | >introduced a level of cognitive complexity that makes
         | Kierkegaard read like Hemingway.
         | 
         | and I fucking lost it.
        
       | bananaflag wrote:
       | This barely mentions Windows Forms, which is the cleanest and
       | fastest way to code Windows GUI apps.
       | 
       | A few years ago, I wanted to prototype something quick and I
       | wrote it in Windows Forms over C# (all code, no visual editor).
        
         | formerly_proven wrote:
         | Winforms is a Win32 API wrapper, so on the same level as MFC,
         | not a separate UI framework.
        
           | int_19h wrote:
           | It is a wrapper, but it's not quite on the same level as MFC.
           | MFC really is a thin wrapper, almost 1:1 in most places.
           | WinForms is more like VCL or VB6 in that it uses Win32 where
           | it can but doesn't design around it, so in practice it's more
           | high-level.
        
         | Almondsetat wrote:
         | >This barely mentions Windows Forms
         | 
         | Apparently, you do too, since what you said is basically the
         | same as what the article said (.NET wrapper for C#, fastest
         | prototyping to date)
        
         | tonyedgecombe wrote:
         | I went from win32/C++ to Windows Forms and I got a huge
         | increase in productivity and quality.
         | 
         | It wasn't all roses though, the high dpi support was atrocious.
        
         | rwmj wrote:
         | I always felt the problem with WinForms was the name. For many,
         | many years I assumed it could only do forms (ie for data
         | entry).
        
         | grandpoobah wrote:
         | I haven't touched it in years but I remember moving to WPF
         | because it had a better answer for binding UI elements to data.
         | But while WPF does have an answer, everything is so fucking
         | verbose and clunky.
        
       | markus_zhang wrote:
       | Steven Sinofsky wrote this piece a couple of weeks ago about the
       | same topic:
       | 
       | https://x.com/stevesi/status/2036921223150440542
        
         | dang wrote:
         | Since that article is a response to this one, we'll add a link
         | to it in the toptext above. Thanks!
        
           | markus_zhang wrote:
           | Thank you!
        
         | int_19h wrote:
         | It's very amusing to see Sinofsky of all people all but dumping
         | on .NET and (still?!) not understanding why developers so
         | proactively jumped ship from Win32 & MFC hell to WinForms. Or
         | why the HTML/JS app model in Win8 never really took off.
         | 
         | I was in DevDiv during his great WinRT push and the overall
         | feeling I remember was that the guys in Windows had zero clue
         | as to what the devs actually wanted, but were hell bent on
         | scorching all the ground that wasn't theirs. My team actually
         | did some prototyping for Python/WinRT support, and we had it
         | working to the point of the visual WPF designer in Visual
         | Studio even. Unlike JS, it was full fledged - you could use
         | anything in WinRT same as C#, extend classes etc, while JS
         | limited you to a "consumer" surface of the API. That prototype
         | was killed because Windows (i.e. at the time = Sinofsky) said
         | they didn't think developers cared about anything but JS so
         | they didn't need another high level language.
         | 
         | It was also when Windows was aggressively pushing their Metro
         | styling on everything in the company, sometimes to ridiculous
         | lengths - e.g. Visual Studio at the time "aligned" with Metro
         | by, I kid you not, making the main menu bar ALL UPPER CASE so
         | that it looked like Metro tabs! You can still see the blog
         | posts announcing this "feature" when it shipped in the first
         | public beta of VS 2012, and the comments on them.
         | 
         | And then there was Windows RT (not to be confused with WinRT,
         | because Microsoft product naming!). Aka the Windows-on-ARM that
         | ditched decades of backwards compatibility because Sinofsky
         | decided that rebooting the ecosystem is the only way to compete
         | with iPad or whatever. What actually happened was that the
         | users went WTF because none of their native apps - which,
         | contrary to his take, were very much alive and kicking! -
         | worked there, and devs went WTF because they were told that
         | they'd need to rewrite everything _yet again_ in some new thing
         | that was kinda sorta but not quite like WPF, because Windows
         | just hated .NET that much and couldn 't accept that the devs
         | liked it over their stuff. So the app store was a barren waste,
         | and without apps there would be no users.
         | 
         | Some of the technical details in there are plain wrong, too.
         | For instance, .NET 3.0 actually shipped in Vista, contrary to
         | his claim that it was shipped in Win7 (and that it was the
         | first time .NET shipped in consumer Windows - in fact, that
         | would be .NET 1.1 shipping in WinXP SP1).
        
           | cjbgkagh wrote:
           | Often kind of person who makes such mistakes is the kind of
           | person unable to learn from them. The post by Sinofsky is
           | exactly as I imagined it would be.
        
           | pragmatic wrote:
           | How is he dunking on .net?
           | 
           | I think one of his main points is server .net was (and is)
           | great.
           | 
           | But the UI part of it was cloudy.
           | 
           | I see it as complimentary to the post not contradicting it.
        
             | int_19h wrote:
             | The UI part is exactly what I meant. WinForms was a
             | _godsend_ for professional developers making line-of-
             | business apps, because previously if you used first-party
             | dev tooling, you either had to deal with the considerable
             | limitations of Visual Basic, or you had to deal with MFC
             | that was low-level enough that all the things that were
             | tedious about Win32 remained tedious. In comparison,
             | Borland had Delphi, and there was a good reason why it was
             | so popular back in 90s and early 00s, and why Microsoft
             | ultimately acqui-hired its main designer specifically to
             | work on .NET (and it very much shows in the design of both
             | C#, which owes as much to Component Pascal as to Java, and
             | of WinForms, which is so similar to VCL).
             | 
             | With WinForms, we actually got something that was
             | _convenient_ without shackling you. And the whole cross-
             | language story was great, too, especially around .NET 2.0 -
             | with C++ /CLI you could very easily wrap any random native
             | code C or C++ library for consumption from .NET, with end-
             | to-end integration in the build system, IDE etc.
        
               | ack_complete wrote:
               | Eh, WinForms did a lot to make Win32 UI accessible and
               | usable -- especially layout and easy customization -- but
               | I have to differ on the cross-language story. It was
               | great, IF you were making primarily a C# program that
               | happened to use some C/C++ components.
               | 
               | From the native code side, it was not so great. The .NET
               | 2.0 CLR had very poor support for hosting from the native
               | side and really wanted you to make a program that was
               | .NET first, it didn't work well if you wanted something
               | like primarily a C++ program that hosted a C# UI in the
               | same process. Reverse P/Invoke via native exports wasn't
               | exposed, so creating DLLs for consumption by non-.NET
               | programs was difficult. Mixed mode debugging was and
               | still is painful, with the debugger being glacially slow
               | at some operations like OutputDebugString() processing
               | and blocking some native features like data breakpoints,
               | and the CLR eating access violation exceptions from
               | native code so they couldn't be debugged properly. Build-
               | mode wise, we had to ban C++/CLI assemblies depending on
               | C# assemblies because the C# project system didn't handle
               | incremental builds properly and forced the dependent C++
               | assembly to rebuild all the time.
               | 
               | These issues still largely exist and are an issue with
               | WPF. It's a great UI framework, but it's unusable unless
               | your front end is primarily a C# program.
        
           | randomfool wrote:
           | Sinofsky kept talking about how many devs were making apps in
           | JavaScript and how they would just be at home in Win8. This
           | was before React, ES5 (no native classes! or promises!), etc-
           | jQuery was still very popular and SPAs were extremely rare.
           | He completely overlooked how dependent many of these devs
           | were on their servers- Python, Ruby, PHP, etc.
        
             | cjbgkagh wrote:
             | They thought after V8 the performance was going keep
             | improving and reach native speeds, they didn't understand
             | that the major performance wins were all upfront and it
             | would hit a wall.
        
           | DeathArrow wrote:
           | It seems Windows division has too much power and they used it
           | to break their things.
           | 
           | Also, Windows division is shipping a subpar product now.
           | 
           | In a sane world developer division and Windows division would
           | think things together, developer division would produce the
           | tools and the same tools would be used by Windows, other
           | Microsoft products such as Office and third party developers.
           | 
           | Why that doesn't happen at Microsoft, I don't understand.
           | 
           | And I don't understand why Nadella doesn't do anything about
           | it.
        
             | sirjaz wrote:
             | It's that Nadella doesn't really care about Windows, even
             | though the kernel is the root of Azure. In addition, all
             | the newer gui frameworks abandoned RAD interface. That is
             | what made and still does make Winforms and WPF popular.
        
           | pjc50 wrote:
           | > making the main menu bar ALL UPPER CASE
           | 
           | I remember that. Especially silly.
           | 
           | > Windows RT (not to be confused with WinRT, because
           | Microsoft product naming!)
           | 
           | The gold standard will always be "Xbox one series X",
           | designed to be confused with Xbox one series S.
           | 
           | Windows RT had one other anti-consumer and anti-developer
           | feature: it was locked down like a Chromebook, so you could
           | only use Store apps on it.
        
             | int_19h wrote:
             | > Windows RT had one other anti-consumer and anti-developer
             | feature: it was locked down like a Chromebook, so you could
             | only use Store apps on it.
             | 
             | That was at least in part due to the aforementioned
             | obsession with iPad and generally mobile. One thing that
             | Sinofsky is not wrong about in his post is that the classic
             | Win32 app model is not conductive to good battery life -
             | there's very little there to properly handle things like
             | automatic background suspension or low-power push
             | notifications. WinRT was designed with that in mind, but
             | that would make no difference if the apps would just ignore
             | it, hence the heavy-handed push for WinRT apps only (AFAIR
             | it wasn't restricted to Store, although you had to jump
             | through some "developer mode" hoops to deploy apps
             | directly).
        
               | ack_complete wrote:
               | The main reason Win32 can't handle automatic background
               | suspension or low-power push notifications is simply that
               | those features haven't been exposed to it. There's
               | nothing preventing a Win32 program from receiving those
               | types of notifications and then being force-ended by the
               | OS if it doesn't respond in time.
               | 
               | When I first started porting programs to Windows ARM64, I
               | didn't have an ARM64 device and had to test in QEMU. It
               | ran extremely slowly, probably 1/50th of real time. All
               | UWP programs like Calculator ran like a slug. But which
               | programs still ran reasonably? Classic WinDbg and Task
               | Manager. Two programs that were still plain Win32.
               | 
               | There _are_ significant issues with Win32, namely its
               | lack of a permissions and isolation and lack of hardware
               | acceleration in the old windowing UI (User /GDI). But the
               | idea that Win32 is inherently power inefficient is, IMO,
               | just BS. Its roots go back to CPUs that were orders of
               | magnitude slower than modern CPUs and there is nothing
               | difficult about making a Win32 program that idles at 0%
               | CPU when not in use.
        
           | orthoxerox wrote:
           | > It's very amusing to see Sinofsky of all people all but
           | dumping on .NET and (still?!) not understanding why
           | developers so proactively jumped ship from Win32 & MFC hell
           | to WinForms.
           | 
           | Yeah, he's talking about WinForms like it was a whole new
           | thing, but it was a very transparent OO layer over Win32 and
           | _extremely_ similar both to VB and Borland Delphi. It was one
           | of the reasons why .NET survived at all when Linux servers
           | became the default option.
        
           | markus_zhang wrote:
           | I have always been tempted to use WPF but I'm reluctant to
           | learn a whole new language for side projects. Especially
           | nowadays C# seems to be as huge as C++. Oh well maybe I
           | should grit through the beginning phase.
        
           | hyperrail wrote:
           | (disclaimer: I was an individual engineer in the Windows
           | division during the Windows 8 project, i.e. reporting through
           | Steven Sinofksy)
           | 
           | I think you're being a bit unfair to the Windows division
           | during the Win8 lifecycle. Maybe that's just my rose-tinted
           | glasses though. I know there are some HN/proggit commenters
           | who like to harp on the supposed toxic rivalry between the
           | Windows orgs and Microsoft developer tools orgs and how it
           | has made Windows' developer platform much worse over the
           | years, but I have always thought we had a better relationship
           | than that, since my group's product was the main reason for
           | yours for many years, and your group delivered so much for us
           | in turn. Clearly your side had at least some reason to see
           | things differently. On behalf of all of us, yes even up to
           | stevesi, I'm sorry.
           | 
           | Now let me completely undermine my apology by nitpicking your
           | comment :)
           | 
           | [continued in my replies to this comment]
        
             | hyperrail wrote:
             | > _It 's very amusing to see Sinofsky of all people all but
             | dumping on .NET and (still?!) not understanding why
             | developers so proactively jumped ship from Win32 & MFC hell
             | to WinForms. Or why the HTML/JS app model in Win8 never
             | really took off._
             | 
             | At the risk of getting my Microsoft history wrong, I'm
             | fairly sure that Steven Sinofsky wasn't working on Windows
             | or even MFC (i.e. what he did as one of you guys) in .NET's
             | early days of 1999-2003. He was leading Office at that
             | time. Office of that era was transitioning from the Windows
             | XP look that still persists in Windows Forms to the early
             | Ribbon, and was then (as now?) using very custom GUI code
             | that didn't correspond to any specific higher-level Windows
             | app framework.
             | 
             | Mac OS Office apps had just separated their codebase again
             | from Windows apps after being unified in the mid-90s to get
             | to feature parity (which annoyed Mac users who felt they
             | now had non-native-feeling apps that were slow and
             | bloated), and the "Office framework" was still quite
             | distinct from any single-platform Windows app as a result
             | of that.
             | 
             | So if Sinofsky did not understand why people went from
             | USER/GDI to WinForms, that may just have been the fact that
             | nobody working for him had felt the need to make that
             | transition.
        
             | hyperrail wrote:
             | > _I was in DevDiv during his great WinRT push and the
             | overall feeling I remember was that the guys in Windows had
             | zero clue as to what the devs actually wanted, but were
             | hell bent on scorching all the ground that wasn 't theirs.
             | My team actually did some prototyping for Python/WinRT
             | support, and we had it working to the point of the visual
             | WPF designer in Visual Studio even. Unlike JS, it was full
             | fledged - you could use anything in WinRT same as C#,
             | extend classes etc, while JS limited you to a "consumer"
             | surface of the API. That prototype was killed because
             | Windows (i.e. at the time = Sinofsky) said they didn't
             | think developers cared about anything but JS so they didn't
             | need another high level language._
             | 
             | I think the real mistake there was not so much that a
             | particular projection of the Windows Runtime was stopped,
             | but the more general idea that developers should be forced
             | to consume what became known as the Universal Windows
             | Platform or author custom WinRT components through _only_
             | Microsoft-made WinRT projections.
             | 
             | In the name of winning over new or inexperienced Windows
             | developers with "simpler, safer" projections, we in the
             | Windows division almost completely failed for about 5 years
             | to document or even explicitly say that WinRT was
             | essentially just "COM: The Good Parts, Version 2012".
             | (Martyn Lovell's Build talks on the origin of WinRT were a
             | notable exception to this.) This discouraged people from
             | using their existing COM skills to develop Metro-style/UWP
             | apps or to gradually adopt features from UWP APIs that were
             | accessible to them in their existing desktop apps. Other
             | people have written that "WinRT=COM" thinking is actually a
             | bad idea because it forces people to deal with COM and its
             | more annoying ideas (separate IDL etc.); I disagree because
             | we should have reached out to people who live in COM world
             | to get a ready developer base.
             | 
             | That mistake was a key part of the still larger mistake you
             | touched on of trying to make the UWP and desktop worlds 2
             | completely different developer platforms that happen to co-
             | exist on the same desktop edition of the Windows OS. _That_
             | was the key  "we didn't listen to developers" mistake that
             | set up UWP for its market failure. Another example: Even
             | _today_ , you can't adopt the battery-friendly UWP app
             | lifecycle using Windows App SDK, which is supposed to be
             | the UWP successor for desktop app developers. So much for
             | WinAppSDK (or indeed UWP/Metro-style apps in Win8) enabling
             | a true no-compromise user experience.
             | 
             | It took real tours-de-force like Kenny Kerr building
             | C++/WinRT and blogging about it, Raymond Chen blogging
             | about using WinRT APIs through the unprojected "ABI"
             | interfaces, or the VideoLAN organization building a
             | Win8/Win10 UWP version of VLC _in C,_ to get the word out
             | that the UWP world wasn 't some alien thing with dark magic
             | that only Microsoft wizards had full access to. And it
             | doesn't help that the wizards really do have a few special
             | powers that they jealously guard even now.
        
             | hyperrail wrote:
             | > _It was also when Windows was aggressively pushing their
             | Metro styling on everything in the company, sometimes to
             | ridiculous lengths - e.g. Visual Studio at the time
             | "aligned" with Metro by, I kid you not, making the main
             | menu bar ALL UPPER CASE so that it looked like Metro tabs!
             | You can still see the blog posts announcing this "feature"
             | when it shipped in the first public beta of VS 2012, and
             | the comments on them._
             | 
             | fair. but that struck me as strange even then. if anything,
             | visual studio should have adopted the all-lowercase
             | typography of the original metro-style design language from
             | zune and windows phone 7, not AN ALL-UPPERCASE ONE.
             | 
             | Perhaps that was just another way that Windows 8 Metro-
             | style apps' design and developer platform was _like_
             | Windows Phone 7 's Metro style, yet different in seemingly
             | gratuitous ways. That is something I _would_ attribute to
             | internal Microsoft politics. Steven Sinofsky and Terry
             | Myerson (leader of Windows Phone at that time) never really
             | got along, and in the Microsoft philosophy of that era
             | where engineering divisions were completely locked down
             | from each other by default, that rivalry would have
             | discouraged what little natural collaboration would have
             | happened anyway.
        
             | hyperrail wrote:
             | > _And then there was Windows RT (not to be confused with
             | WinRT, because Microsoft product naming!). Aka the Windows-
             | on-ARM that ditched decades of backwards compatibility
             | because Sinofsky decided that rebooting the ecosystem is
             | the only way to compete with iPad or whatever._
             | 
             | It's important to remember the specific reasons _why_
             | Windows RT 8 chose to not support third-party desktop apps.
             | The most important aspect of  "iPad compete" that we wanted
             | on Windows for ARM was not "all app UXes look and work well
             | on touchscreen tablets" but "you can't ship malware, not
             | even by rebuilding your x86 malware from source." Thus,
             | every 3rd party app on Windows RT would have to live in the
             | AppContainer sandbox that UWP apps are in by default, and
             | the requirement that you ship through the artist formerly
             | known as the Windows Store would be a second line of
             | defense against malicious apps. And with the forced-enabled
             | Secure Boot, subverting the user-mode controls by secretly
             | installing a bootkit would be hard even with physical
             | access to the PC.
             | 
             | Even within the Microsoft world only, Windows Phone 7 had
             | proven the success of this approach of locked-down apps
             | only available through an app store that checked apps on
             | submission and afterward for security. It was not
             | unreasonable to think that similar lessons might also
             | benefit users of "big" Windows, which is why Windows 10 and
             | 11 have the opt-out "S mode" which defaults to the Windows
             | RT restrictions.
             | 
             | I do wish though that Windows 8 had learned _different_
             | lessons from WP7 (about which more in another point).
        
             | hyperrail wrote:
             | > _What actually happened [re Windows RT, but I think the
             | point applies to UWP in general] was that the users went
             | WTF because none of their native apps - which, contrary to
             | his take, were very much alive and kicking! - worked there,
             | and devs went WTF because they were told that they 'd need
             | to rewrite everything yet again in some new thing that was
             | kinda sorta but not quite like WPF, because Windows just
             | hated .NET that much and couldn't accept that the devs
             | liked it over their stuff. So the app store was a barren
             | waste, and without apps there would be no users._
             | 
             | The fact that UWP XAML was its own new thing and not a
             | extension of an existing Microsoft GUI app framework like
             | WPF was not necessarily a "we hate managed code" thing, or
             | even a "we hate those guys who invented managed code and
             | want to screw them because we're Windows" thing. After all,
             | .NET managed code had equal access to UWP through the .NET
             | WinRT projection!
             | 
             | And to me at least (I didn't work on UI-facing stuff in
             | Win8), it was absolutely conceivable that UWP could have
             | just delivered Windows Phone 7 Silverlight's version of
             | XAML to native code apps, with a thin adaptation layer to
             | let even unmodified WP7 app binaries run on the desktop
             | Windows .NET Framework with the WinRT projection and to
             | allow slightly modified WP7 apps to look good in landscape
             | mode on both Windows 8 and WP8. If we had done that instead
             | of making UWP XAML its own thing, and if we had integrated
             | the Windows Store with the Windows Phone Marketplace from
             | the beginning so that Windows and Windows Phone apps could
             | be sold as variants of each other through a single
             | Store/Marketplace product entry on Windows 8 GA day, then I
             | think we could have brought a lot of people forward who
             | were already making good WP7 apps, and the Store wouldn't
             | have been so empty.
             | 
             | Furthermore, IIRC much of the original UWP XAML
             | implementation was done by the original people who built
             | WPF and Silverlight the first time, and they would have
             | known what they were doing in separating UWP XAML from
             | Phone Silverlight. That they didn't go in the direction of
             | extending Phone Silverlight was not necessarily
             | shortsightedness on the part of provincial Windows people.
             | Maybe they thought Phone Silverlight actually demonstrated
             | fundamental limitations of WPF or Silverlight XAML or the
             | Silverlight "coreCLR", or they wanted to make breaking
             | changes as lessons learned from Phone Silverlight, which
             | was put together about as hurriedly. (Windows Mobile 6 ->
             | Windows Phone 7 first previews = 1.5 years; Windows 7 ->
             | Windows 8 first previews = 1.5-2 years, tending toward 1.5
             | years if you account for the frantic re-planning after iPad
             | came out in early 2010.)
        
         | CamperBob2 wrote:
         | Is there any way to get to the article without going through
         | x.com? xcancel.com just says "Nitter doesn't support this
         | feature yet, but it might in the future."
        
         | orthoxerox wrote:
         | I've read this and the relevant chapters on his Substack and I
         | think I get the idea that he tried to implement, but it's
         | obvious in 2026 where his vision diverged from what people
         | really wanted.
         | 
         | In the ideal world, Win32 applications would have automatically
         | run in a sandboxed WinRT environment with granular permissions.
         | A program thinks it's accessing a USB webcam, but it is
         | actually accessing a Win32 shim that goes to the WinRT that
         | first prompts the user to obtain the necessary permission and
         | then goes to the real Win32 USB API to interface with the
         | camera. A program is trying to access a file that hasn't been
         | selected in the "Open file" dialog or dragged into it or passed
         | as a command line argument? Raise a "malicious access" warning.
         | 
         | Overly complicated programs like antiviruses would have been
         | able to get a "hall pass", either by registering their builds
         | with Microsoft or asking for an administrator-level exception.
         | 
         | Of course, this would've been terribly hard to implement. Doing
         | it natively would be supremely complicated, much harder than
         | just designing a whole new userland API like WinRT. And
         | sandboxing every application in something similar to Sandboxie
         | would've been too taxing on the PCs from that time.
        
       | binarymax wrote:
       | Given how bad windows has become since windows 7, I've been
       | wondering. Does Bill Gates still use Windows? Does he put up with
       | the horribleness?
        
         | markus_zhang wrote:
         | I think Bill pretty much chilled out since he stepped down?
        
           | binarymax wrote:
           | Yeah of course. He has nothing to do with Microsoft
           | operations or strategy. But does he still use the products?
        
             | throwaway132448 wrote:
             | I couldn't know, but generally speaking, older billionaires
             | don't typically interact with the world in the same way
             | most of us do (well, those without a social media addiction
             | anyway). The device is someone else's problem.
        
             | seanmcdirmid wrote:
             | He still visits Microsoft occasionally. A friend showed me
             | a picture of him visiting Microsoft in Beijing a few months
             | ago (he was excited about BillG visiting). So my guess is
             | that he still has an interest in Microsoft products.
        
           | calvinmorrison wrote:
           | He's mostly been hanging with Epstein and asking for people
           | to buy him STD medication due to his endless trysts
        
           | cjbgkagh wrote:
           | He's still around as a part time advisor, he has to
           | officially step back or no one would take Satya seriously,
           | but on important stuff like AI he is a bit more active.
        
           | Maxatar wrote:
           | I just looked into this a bit because I thought he still had
           | some kind of role at Microsoft even after leaving as
           | CEO/chairman, but it turns out that in 2020 he left any and
           | all positions at Microsoft as it was investigating him over
           | inappropriate sexual relationships he had with Microsoft
           | employees.
           | 
           | Before that he had a role as a technical advisor and sat on
           | the board of directors.
           | 
           | I also found it interesting that Steve Ballmer owns
           | considerably more of Microsoft than Bill Gates (4% for Steve
           | Ballmer while Bill Gates owns less than 1%).
        
         | bossyTeacher wrote:
         | If he doesn't use Windows, you won't hear about it. And if you
         | hear that he uses Windows, it might not be true. He loses
         | nothing by denying it. If it worked for his friendship with
         | Epstein, it will work here.
        
         | pragmatic wrote:
         | The guy getting std's from Russian girls who Warren Buffet
         | doesn't talk to anymore.
         | 
         | That Bill Gates?
         | 
         | Seems he might have other priorities these days?
        
         | Surac wrote:
         | No im sure he uses linux or osx. Everyone uses this since
         | windows phone was killed
        
       | regularfry wrote:
       | Having spent some time kicking around the Delphi space I got
       | quite into WPF in 2007ish. By 2010 I had not just sworn off it,
       | I'd sworn off Windows entirely. The constant stream of rug-pulls
       | as one bit of MS managed to pull off a political heist over
       | another and - oh no - yet another "latest and greatest"
       | technology was effectively deprecated within 18 months of launch,
       | invalidating all the effort you put in to staying up to date just
       | became a pointless treadmill.
       | 
       | Fortunately Rails was taking off at that point so it was fairly
       | easy to change horses and just ignore it.
        
         | PacificSpecific wrote:
         | If I'm writing Windows desktop GUIs I still stick to WPF. Might
         | be Stockholm syndrome but I quite like it.
         | 
         | I don't see the reason to use any of the new ms ui frameworks.
         | Especially if ms themselves don't even really use them.
         | 
         | As far as I know visual studio is still a WPF project so I'm
         | not super worried about it no longer working.
        
           | RajT88 wrote:
           | WPF looks much nicer. Personally I find it hard as hell to
           | debug.
           | 
           | Winforms just work, and have a well defined set of behaviors.
           | It does not matter that they do not look as nice for most
           | people.
        
           | imron wrote:
           | That's not so bad. I still stick to win32
        
         | taylodl wrote:
         | Microsoft had a lot of great talent suffering from a lack of
         | leadership and coherent vision. They foreshadowed everything
         | wrong with Big Tech today.
        
           | functional_dev wrote:
           | what surprised me is how different the rendering architecture
           | is for each framework.
           | 
           | Win32 -> message loops & GDI
           | 
           | Winforms -> managed C# via P/Invoke
           | 
           | WPF -> throwse all away and uses DirectX
           | 
           | UWP -> Appcontainer sandboxing
           | 
           | WinUI -> decouples from OS entirely
           | 
           | This visual breakdown helped me to see it clearly -
           | https://vectree.io/c/evolution-of-windows-gui-frameworks-
           | fro...
        
             | FeistySkink wrote:
             | As far as I remember, WinForms is just a thin wrapper
             | around Win32 with a message loop, i.e. not all that
             | different.
        
         | calvinmorrison wrote:
         | At the same time VB still works and runs, so they don't always
         | rug pull.
        
           | rbanffy wrote:
           | They might have forgotten to pull that rug.
        
             | int_19h wrote:
             | Definitely not, since it actually takes quite a lot of red
             | tape to ship something as ancient as MSVBVM60.DLL in
             | Windows 30 years later, _and_ guarantee that it is still
             | working.
             | 
             | It's just that it's a piece of tech from back when
             | Microsoft corporate dominance on the desktop was at its
             | peak, and many large companies bought into the then-current
             | tech stack, including VB6. So now Microsoft is stuck
             | maintaining it because those are the customers that bring
             | consistent revenue.
        
             | WorldMaker wrote:
             | They did pull that rug, twice, in two different directions.
             | 
             | 1) VB7 (VB.NET) entirely split the VB developer community.
             | 
             | 2) VB6 IDE has not worked well and is entirely unsupported
             | in every Windows after XP. It's generally recommend to
             | build VB6 apps in an XP VM and XP being out of security
             | support it's now a huge "Use at your own risk" and "Do your
             | best to isolate the VM from ever having an internet
             | connection". (Not to mention that installers like Install
             | Shield that still understand VB6' super messy version of
             | COM are generally also out of support and security
             | support.)
             | 
             | It was alleged that Microsoft almost dropped the runtime
             | components for VB6 in Windows 11. It starts to feel like
             | only a matter of time before they do.
        
       | Surac wrote:
       | Today i still use C# with Windows.Forms. All my old knowledge is
       | still usefull. People know how to use a Windows.Forms program.
        
         | grebc wrote:
         | It's great, some vendors have fantastic component libraries for
         | reasonable prices.
         | 
         | Unreal that MS bet the farm in Windows on so many other turds
         | instead of boring old WinForms/Win32.
        
       | whynotmaybe wrote:
       | As of today, I only use 2 solutions for Windows GUI :
       | 
       | - windows forms in .net
       | 
       | - flutter
       | 
       | All the rest always presents itself with a sheer aura of "It was
       | a great idea but we couldn't finish it".
       | 
       | Without ever discussing with anyone from MS about it, I think
       | they stopped improving/working on this because of electron.
       | 
       | Any web developer can build a good enough website and a good
       | enough desktop app with electron.
        
       | mentalgear wrote:
       | I'm planing on switching over to QubesOS - way more secure
       | (especially considering rogue LLM-agents) and visually not much
       | worse from windows ... maybe even more cohesive.
        
       | TazeTSchnitzel wrote:
       | I'm not sure I can take such an article seriously if it doesn't
       | mention that the WinRT/UWP/WinUI stack is also based on XAML, and
       | that a fundamental design goal of WinRT was to let people use
       | either C++ or C# according to taste.
       | 
       | Also, the AI smell in this article is just too much.
        
       | goalieca wrote:
       | The writing style was really poor. Too many words saying too few
       | things.
        
         | luma wrote:
         | Entirely AI. I just can't with this style anymore.
        
       | OptionOfT wrote:
       | Case in point after Edge updated this morning:
       | 
       | https://imgur.com/a/dWp5Ohj
       | 
       | Did they even try to make it look like the new context menus?
        
         | okanat wrote:
         | Well, Edge is Chromium. They need to maintain a hard fork, not
         | just a reskin with a bunch of Microsoft webpages and adware.
         | Chromium basically allocates a window and completely draws
         | everything inside using DirectX APIs including menus.
        
       | supliminal wrote:
       | I used the more recent Petzold examples to successfully bind
       | DirectWrite to Direct3D, but yeah it's been a crapshoot
       | otherwise. Still have the Windows Programming (5e?) bible around
       | here somewhere. Took awhile to grind through it. I dread modern-
       | day windows programming it seems like every OS release some new
       | API is going to overtake the others. I moved on.
        
       | fassssst wrote:
       | It's web. Just use electron or Tauri.
        
       | lenkite wrote:
       | The problem is that they just could not commit to anything for
       | more than 2 years after Win32.
       | 
       | They had something reasonably good in WinRT. They should have
       | stuck to that. But Nadella came in, said Azure Cloud is the
       | future and abandoned the Windows platform.
        
         | rbanffy wrote:
         | At this point one must ask if Microsoft is still a software
         | platform company - whether their products form a substrate
         | where an ecosystem can form and build a coherent software
         | environment for the users of their platform.
         | 
         | Microsoft used to be the Windows company (after being the BASIC
         | company, then the DOS company). Then it became the Office
         | company. Now it's SharePoint and Office365 and Azure, a
         | utility. Windows is a relatively small part. Office is both
         | desktop and web (and spacecraft, where they have two versions
         | of Outlook and none of them works). If you are confused at this
         | point, so am I. There is no vision as to what Microsoft is. If
         | Satya Nadella knows what Microsoft is, he isn't communicating
         | it properly. It's not Azure, because there is also Office and
         | Windows. And on-prem server products. And a line of hardware
         | products. And stores (do they still exist?).
        
           | drob518 wrote:
           | Nadella thought he could take the reins and start yelling
           | "Cloud! Cloud! Cloud!" and that would be successful. He
           | doesn't have a strategy and now that's becoming apparent.
        
             | gdhkgdhkvff wrote:
             | Nadella took the reins in 2014 and the stock has 10x'd
             | since then. In the same timeframe, the sp500 has 2.5x'd.
             | Sounds pretty successful to me?
        
               | a_vanderbilt wrote:
               | In theory, the market should be pricing in based on
               | future potential. As it has become increasingly clear
               | this past decade, the market is not rational.
        
               | drob518 wrote:
               | In a bubble, everyone looks like they're doing well.
               | Don't confuse that with an actual strategy.
        
               | gdhkgdhkvff wrote:
               | But I compared it to sp500. Even QQQ only 6x'd in that
               | timeframe.
               | 
               | Which bubble are you talking about? Even if you remove
               | everything after January 1 2020, it's still up 4x since
               | nadella took over. And that follows a decade of
               | stagnation under Balmer.
               | 
               | What numbers do you know of that show that Microsoft
               | hasn't been successful since nadella took charge?
               | 
               | Complain all you want about the products, but the stock
               | under nadella has been a success.
        
               | bigstrat2003 wrote:
               | Stock price going up is not the success criterion for a
               | business. Making money is. And Microsoft's decisions are
               | undermining their ability to make money in the future,
               | which makes them bad decisions even if the stock price
               | has gone up or if they make more money in the short term.
        
               | andsoitis wrote:
               | > Stock price going up is not the success criterion for a
               | business. Making money is.
               | 
               | Microsoft's net income is up roughly 5.4x from ~$22B in
               | 2014 to $119B today. Profit margin also expanded, from
               | ~25% net margins in 2014 to over 36% today.
        
               | adrianN wrote:
               | If the market agreed, the stock wouldn't go up.
        
               | sph wrote:
               | If your only metric is stock price, yes. That's the value
               | proposition of enshittification.
        
               | user____name wrote:
               | Sure, but how much of that had to do with the design and
               | implementation of Windows? You know, the OS that runs
               | half of the modern economy. Microsoft is just milking it
               | without a coherent vision.
        
               | pndy wrote:
               | Maybe financially MS is successful but at the cost of
               | flagship product becoming adware and people fleeing
               | slowly away
        
               | snarfy wrote:
               | Cloud was taking off at the same time. Anybody in his
               | spot would have been successful.
        
             | wvenable wrote:
             | Cloud is now massively larger than any other part of
             | Microsoft. It's why he became the CEO in the first place.
             | 
             | He maybe never had a strategy for Windows but he wasn't
             | hired to have a strategy for Windows.
        
             | orthoxerox wrote:
             | He _had_ a strategy and it worked very well. But every
             | strategy must be updated. It 's basic BCG matrix stuff
             | every MBA graduate knows by heart: sooner or later your
             | star product becomes a cash cow and then a dog. To keep
             | your company growing, you need to identify your next
             | potential stars among question marks, boost them with cash
             | from the cash cows, put competent managers in charge and
             | remove those who get in the way.
             | 
             | Gates did this with Windows, Office, XBox among other
             | things. Ballmer failed to do this this with Windows Phone.
             | Nadella did it with Azure, but he needs to do it once again
             | with AI. You can see that he's pushing hard with Copilots
             | everywhere, what's missing is a manager that has a coherent
             | vision of what AI at MS should look like. ScottGu is in
             | charge of both Azure and AI at MS, but I don't know if he
             | can deliver.
        
               | drob518 wrote:
               | I agree with most of that. To be charitable to Nadella,
               | at the time he first came into the role, Microsoft needed
               | someone yelling "Cloud! Cloud! Cloud!" because the
               | company was certainly behind folks like AWS. But for a
               | long time he basically stopped there. Office migrated to
               | the cloud and they pushed out Azure. Then he went on the
               | AI rant and they decided that putting AI into everything,
               | whether customers wanted it or not, was "the next thing."
               | But now we're learning that Azure is a steaming pile of
               | crap with customers leaving, and this article about GUI
               | strategy shows they don't have an application development
               | strategy. Everybody is fed up with Windows. Everybody is
               | fed up with all the numerous "CoPilots." You actually
               | have regular people investigating moving off Windows to
               | Linux desktops. The one thing that Microsoft did
               | exceptionally well through the 1990s and early 2000s was
               | keep enterprises and app developers moving in the same
               | direction. They bent over backwards to keep old Windows
               | 3.1 applications running even on Win32 systems. That all
               | ensured that nobody questioned whether they would work
               | with Microsoft. They were the default and they commanded
               | huge market power because of it. But that's all changed,
               | and they have nothing to replace it. With everybody
               | starting to ask questions that Nadella doesn't have
               | answers for, it's going in a bad direction. Nadella needs
               | to call his EVPs to account and force them to make some
               | hard decisions about what lives or dies and then pressure
               | test the resulting strategy with his customers, both old
               | customers and potential customers. Surely, cloud and AI
               | are a part of that future strategy, but he needs to
               | figure out the rest of it.
        
           | pdonis wrote:
           | MS has never been a software platform company. That's the
           | fundamental reason behind the issue the article talks about.
           | 
           | MS has always been a software _application_ company. Windows
           | was never anything more than a way to sell MS applications--
           | and Windows 3.0 and later wouldn 't even have existed in the
           | first place if IBM hadn't dawdled so long over OS/2. Even in
           | the MS-DOS days, when MS was reaping the benefits of IBM's
           | previous bonehead decision to hand the PC OS market to them,
           | MS was selling Office applications--on the Macintosh.
           | 
           | The basic Windows API, in all of its many incarnations, has
           | always been a second-class citizen; MS Office applications
           | have always done their own things that other Windows
           | applications couldn't do without using undocumented features
           | that MS could change at any time (and often did). One could
           | argue that the only reason MS even allowed third-party
           | Windows developers to exist was so that they would, in the
           | words of one of PG's essays, do market research for MS. When
           | a third-party dev came up with something that got enough
           | traction, MS would simply incorporate it into their apps.
        
             | coliveira wrote:
             | This makes sense, because even in the best times Windows
             | was not the biggest money maker for Microsoft, it was
             | Office. So MS was never fully behind Windows, it was only
             | the means to an end, which was selling the most software
             | for enterprises.
        
               | kmeisthax wrote:
               | Ironically, Office was the original poster child for
               | Microsoft reinventing it's own widget toolkits, even back
               | when Microsoft had a coherent visual design and developer
               | story.
        
             | furyofantares wrote:
             | How do you reconcile this with their history of bending
             | over backwards to achieve backwards compatibility for third
             | parties?
        
               | pdonis wrote:
               | Because their strategy for getting their applications in
               | front of everyone has always been to get Windows in front
               | of everyone, and that meant having to support third party
               | applications that they chose not to try to incorporate
               | into their own apps, but which got enough usage that not
               | supporting them would mean losing those Windows desktops,
               | and thus losing those users of the MS applications that
               | were on every Windows desktop.
               | 
               | It's quite possible that this attributes too much
               | intentional strategy to MS, and also treats them as a
               | single entity with a single strategy more than they
               | deserve. The MS internal teams that were bending over
               | backwards to maintain backwards compatibility were not
               | the same as the teams that were churning out new APIs,
               | building Azure, etc., and quite likely had very different
               | incentives.
        
             | rbanffy wrote:
             | Microsoft was a language company at the start - they had a
             | huge share in 8-bit computers and their BASIC made into the
             | ROMs of almost every computer sold in the 70s and 80s. Then
             | they branched out to applications, with little success (I
             | remember Multiplan on CP/M, DOS, and Mac). When they
             | started selling PC-DOS and MS-DOS they had no applications
             | play to speak of. Office only came much later, and the apps
             | that appeared for Mac, Word and Excel, were ported to
             | Windows starting on Windows 2. Word for DOS struggled in
             | the market and never reached a significant share.
        
               | pdonis wrote:
               | _> Office only came much later_
               | 
               | In the sense of being marketed as a single integrated
               | package, yes, I agree. I was using the term loosely to
               | refer to the apps themselves (Word & Excel were the first
               | two, as you note, the others came after).
        
           | hyperrail wrote:
           | Microsoft has always had a broad vision of itself as a
           | technology company; I feel it's perfectly fine to not be able
           | to describe Microsoft in one sentence without using
           | platitudes like "empower every person on Earth to achieve
           | more" or "put a computer in every home and every office"
           | (both paraphrases of actual MSFT company mission statements),
           | and I suspect many other current and former Microsoft
           | employees would feel the same way.
           | 
           | IMO Microsoft's best long-lived products have always been
           | _both_ finished solutions to your problems _and_ platforms to
           | help you develop more solutions, and Microsoft leadership has
           | always recognized this. Examples: Windows. Office. Dynamics
           | (their Salesforce competitor).
           | 
           | But even if a product doesn't meet that "why not both?"
           | ideal, there is always going to be room for it at Microsoft,
           | as long as it is not only a good or at least mediocre product
           | by itself, but also works to sell you on the whole Microsoft
           | ecosystem. Sometimes that is a bad thing (see all the Windows
           | adware for Bing, Copilot, and M365). But that at least is
           | where Microsoft remains consistent.
        
             | com2kid wrote:
             | > "put a computer in every home and every office"
             | 
             | That was such an amazing mission statement. It was a real
             | measurable goal, and progress towards it was quantifiable.
             | And Microsoft actually did it! That mission statement drove
             | actual strategies (lower costs, don't complete with Apple
             | on the high end, force OEMs to compete against each other
             | on price, etc) that resulted in its ultimate fulfillment.
        
         | stefan_ wrote:
         | WinRT was technologically terrible (which immediately flows
         | from "no one at Microsoft was actually using it to make
         | anything useful"). But that wasn't even what sunk it - the
         | whole requirements around "of course your WinRT app is going to
         | be in the Microsoft Store^TM its the future" did that. The
         | fucking store is a joke, and those requirements existed solely
         | to boost a bunch of idiots internal careers.
        
           | collabs wrote:
           | The Windows Store thing was so terrible that I would argue
           | the only good thing that came out of it was that it made
           | Valve/Steam invest in Linux.
           | 
           | I still don't understand why the windows store search sucked
           | so badly. It isn't like they had billions of apps. So why did
           | it suck?
        
             | coliveira wrote:
             | Most probably it was on purpose. MS is famous for the
             | infighting of internal groups and how the management
             | doesn't know how to control their divisions.
        
             | cyberax wrote:
             | At one point, I worked on an app that periodically appeared
             | in the top 10 of Windows Store sales.
             | 
             | Its income? Around $500 a month.
        
           | garganzol wrote:
           | My favorite example of that was when WinRT app .exe files
           | could not be launched from the command line. Only via some
           | Windows Store voodoo dance with approvals, signatures and
           | "security" that made WinRT for developers essentially a dead-
           | on-arrival technology.
           | 
           | I would not be surprised if you still cannot launch a
           | fricking .exe.
        
             | pjmlp wrote:
             | This was sorted out in Windows 10 with the unification of
             | WinRT programming models under UWP.
        
               | garganzol wrote:
               | Nope, it wasn't solved in UWP days, neither it's solved
               | today.
               | 
               | To satisfy my interest, I've tried creating WinUI app
               | (aka UWP/WinRT) in Visual Studio 2026. And this is what
               | I've got on the first app launch after compilation:
               | 
               | "This device needs to be set up correctly to develop this
               | type of app for Windows. If you don't, then you can't
               | install and test your app before you submit it to Windows
               | Store"
               | 
               | I don't want to install/submit, I just want to be able to
               | run my fricking .exe. Period.
               | 
               | So why are you calling this issue solved? To me, it's
               | still right there in the plain sight - the same voodoo
               | dances and delusional expectations of subordination to
               | Windows Store.
        
           | pjmlp wrote:
           | Correct for the Windows 8 and 8.1 initial versions, it was
           | already quite good with UWP on Windows 10.
           | 
           | But then they rioted internally to kill C++/CX (the only time
           | they had something comparable to C++ Builder), Project
           | Reunion got announced and misused from the original goal,
           | porting WinRT back into Win32 killed .NET Native as well,
           | most of the key team members left to Amazon and Google, Azure
           | or AI teams, the team is now mostly interns or juniors from
           | Microsoft India, no direction, and is a mess, naturally.
           | 
           | I went from a WinRT advocate, to pointing out devs to stay
           | away from it, this is how bad they treated those that
           | actually believed WinRT could be it.
        
           | zanderz wrote:
           | Part of the reason was that WinRT was aimed at tablets and
           | other low power devices, where unrestricted Win32 API use
           | could drain the battery too quickly. They were trying to put
           | the genie back in the bottle to have more control in this new
           | ecosystem, like Apple enjoyed on iPad, etc. Much of the weird
           | signing and app store evaluation was to make sure your app
           | used only the blessed APIs and wouldn't, for example, stay
           | awake in the background listening on an arbitrary port and
           | drain the little tablet battery.
           | 
           | Painful and nonsensical from a desktop standpoint but also
           | kind of impressive in a way.
        
       | steve1977 wrote:
       | That illustration at the end of the article is quite something.
        
         | g-b-r wrote:
         | Quite some slop
         | 
         | Has it become unreasonable to use an image editor for anything?
         | At least to stamp some readable text on top of your slop??
        
           | steve1977 wrote:
           | Sometimes I really don't know whether to laugh or cry.
        
           | lynndotpy wrote:
           | The slop-typos aside, "Jeffrey Snover" is just completely
           | wrong all over his infographic.
           | 
           | He's claiming Microsoft pitched "WitdFT" (sic), "HTMLAl5"
           | (sic), and "C++" sonuitaneously (sic) at Build 2012.
           | 
           | HTML5 was released in 2008 and the C++ reference was released
           | in 1985. How is this acceptable?
        
         | bediger4000 wrote:
         | What are you talking about? As a "Chrondum and frade.js"
         | developer, I found it very flelpful.
        
           | steve1977 wrote:
           | I for one am on the Mindows Seam, where I can enjoy the books
           | of Charloy Reccold.
        
       | api wrote:
       | Nobody really has. Apple comes the closest but they keep rug
       | pulling it in weird ways.
       | 
       | Windows and Mac in the 90s had very consistent GUIs with such
       | consistency in things like keyboard shortcuts that apps could
       | easily be learned. The term "intuitive" was king in the realm of
       | UI design.
       | 
       | Then the web hit and all that died.
        
         | antiframe wrote:
         | Not nobody. KDE has a functional and consistent GUI.
        
           | lunar_rover wrote:
           | The problem with things from the Linux world is that they
           | never reached the height of commercial desktops to begin
           | with.
           | 
           | If you really enjoy worse Windows XP UX with hamburger menus
           | in recent versions then by all means go ahead, it does
           | function.
        
             | antiframe wrote:
             | I thought we're not discussing whether we _like_ one UI
             | over another but whether an OS 's UI was (internally)
             | _consistent_. You may dislike KDE, but it uses it 's design
             | language all throughout the UI from window manager, the
             | application launcher, the settings dialog, everywhere.
             | Windows famously has three (or more?) styles of control
             | panel UI. You may prefer that, and to each their own, but
             | it _is_ inconsistent, which was the topic of this thread.
        
           | DrinkyBird wrote:
           | KDE has the newer QML-based Kirigami and older Qt Widgets
           | frameworks that are not consistent. Widgets apps absolutely
           | look like actual desktop apps (menus, toolbars, dialogs),
           | Kirigami apps look like mobile apps (nav bars, hamburger
           | menus, page-based navigation). There is definitely a visual
           | and functional inconsistency between the two, even if they
           | use the same theme pretty well.
        
           | WesolyKubeczek wrote:
           | Problem is, both Firefox and Chrome look out of place on it
           | when you use a non-standard color scheme. Custom keyboard
           | shortcuts won't work on Chrome. When you change a theme from
           | light to dark and vice versa, both browsers like to have text
           | in their UI stuck on the wrong color.
           | 
           | I could use Konqueror, I guess, but its ad blocking plugin
           | (and plugins overall) seems to never have progressed much
           | since KDE 2.
        
             | antiframe wrote:
             | Right, applications can break all sorts of UI consistency.
             | But the question is: do the standard components that the
             | vendor ships do it? I argue: KDE is consistent. I don't
             | want my desktop UI to dictate how an app draws its UI (or
             | games would be impossible).
        
       | hermitcrab wrote:
       | Microsoft GUI development is a mess. They don't seem to care.
       | Just look at the mishmash of different GUI styles in Windows 11.
       | 
       | Thankfully I have been mostly insulated from it by sticking to Qt
       | and C++ for the last 25 years.
        
         | joezydeco wrote:
         | Qt/Win is enough to get the job done. Not always pretty, but it
         | works. I used to be somewhat ashamed I never learned the actual
         | Win32 API to write native apps, but now it looks like that was
         | time saved. This is a great article.
        
       | jpeter wrote:
       | So the windows team hates .NET, so they use react webviews and
       | put them in explorer and start menu???
        
         | praisewhitey wrote:
         | They use react native
        
         | int_19h wrote:
         | You have managed to concisely summarize the progress of Windows
         | UI development for the past 15 years, yes.
        
       | arbirk wrote:
       | I think that is an insult to MS Bob
        
       | cosmotic wrote:
       | This is what happens when one's performance is measured by
       | "impact".
        
       | politelemon wrote:
       | This is a problem with all the OSes.
        
         | antiframe wrote:
         | I disagree. KDE and Gnome both have pretty consistent UI
         | strategies. You may or may not like them but they have clear
         | identities and design guidelines and follow them.
        
           | hulitu wrote:
           | GTK1, GTK2, GTK3, GTK4, GTK5. Qt1, Qt2, Qt3, Qt4, Qt5.
        
             | antiframe wrote:
             | Yes, those are all different versions of the underlying
             | widget frameworks. I don't understand your point. My
             | current GUI is KDE Plasma 6.6. The only libraries I have
             | installed are Qt 6 (which I am not sure why you didn't
             | list). I have no need for version 5 or 4, or any other. The
             | GUI is consistent.
             | 
             | When I last used Windows, on a fresh install, I saw a
             | mixture of different frameworks used for core OS components
             | from the same vendor.
             | 
             | When I last used OS X, it was pretty consistent but I hear
             | complaints from friends that its no longer the case.
        
       | kjellsbells wrote:
       | I blame "Impact". That's what you are graded on at Microsoft.
       | Every performance review ('Connect'), every stock award, every
       | promotion run: did this person have that magical impact.
       | 
       | Ostensibly, grading by impact is fine: they want people who make
       | a positive difference. In reality, it means that creating is
       | better than finishing. Now add in the cold realities that at any
       | given time in Microsoft, some groups are on the up and some on
       | the down. What's a great way for a group to regain some status?
       | Launch something. Jazz it up for the Build or Ignite crowd. Get
       | some dev evangelist to talk about it. Then get on the job board
       | and slide over to another team ASAP. You're a High Impact person.
       | Who wouldn't be happy to have you?
        
         | snarfy wrote:
         | If my assigned tasks are A,B,C and I do all three 100%
         | correctly, on time, etc, it makes zero difference on my impact.
         | 
         | I need to ignore those and do D,E,F instead to get promoted.
        
       | anthk wrote:
       | OLE objects are just like disk images.
        
       | rbanffy wrote:
       | > From their perspective, gambling on a new managed-code
       | framework had produced the most embarrassing failure in the
       | company's history
       | 
       | Most embarrassing failure in the company's history that far.
        
       | pipeline_peak wrote:
       | Why tie your app to Windows at all?
       | 
       | Microsoft developed VS Code and Teams in Electron. That says a
       | lot about how they see the future.
        
       | segphault wrote:
       | It's bad enough that Microsoft doesn't have a satisfying answer
       | to this question, but what makes it worse is that WinUI feels
       | weirdly non-native in ways that sort of uncomfortably result in
       | Electron apps feeling more like real Windows applications.
       | 
       | It's worth noting though that Apple is on a similar trajectory
       | and is now in a very nearly as bad position given all the serious
       | issues with SwiftUI and how badly it has fragmented/degraded Mac
       | desktop application development.
       | 
       | It's almost like the major desktop platform vendors have all
       | given up on supporting high-quality native desktop applications.
        
         | GeekyBear wrote:
         | > It's worth noting though that Apple is on a similar
         | trajectory and is now in a very nearly as bad position given
         | all the serious issues with SwiftUI and how badly it has
         | fragmented/degraded Mac desktop application development.
         | 
         | Apple (and Next before it) have been iterating on Appkit/UIKit
         | for three and a half decades.
         | 
         | Now they have added SwiftUI as a second option and have been
         | iterating on it for a bit over half a decade.
         | 
         | This is in no way similar to Microsoft creating and abandoning
         | another UI framework every couple of years.
         | 
         | If Microsoft had been steadily improving Win32 all these years,
         | where would it be today?
        
       | teyc wrote:
       | The web revolution is to Windows UI what vibe coding is to
       | programming today. It brought in a massive group of people who
       | didn't need to understand message pumps, or handles or non-
       | blocking api calls. On top of that, it delivered incrementally
       | more capable result each year. View source taught millions how to
       | build modals, blurred overlay. Meanwhile, the old group of
       | programmers were still worrying about how to protect the knowhow
       | behind compiled languages.
        
         | bigstrat2003 wrote:
         | I agree with the thesis of your post, but where we differ is
         | that I think both of those were (are) bad things. Both web apps
         | and vibe coding are causing the market to be flooded with low
         | quality software, not only making the market worse but also
         | giving future generations fewer examples of well-made software
         | to look up to.
        
       | mrtksn wrote:
       | 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 wrote:
         | > 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
        
       | nusl wrote:
       | This article smells so strongly of AI that I'd be surprised if
       | the author did much of any writing.
        
         | boutell wrote:
         | I found the article itself very informative and not
         | particularly ai-tastic. But then I got to that infographic at
         | the end. Holy smokes was that disappointing. It seems clear
         | they didn't even bother to read the captions the AI scribbled.
        
         | belkinpower wrote:
         | It starts out alright, and then ends with a pile of classic
         | Claude-isms and an unreadable slop graphic. Like the author got
         | bored of writing it halfway through.
        
           | grandpoobah wrote:
           | "Unreadable slop graphic" xD
        
         | navigate8310 wrote:
         | The summary of various frameworks and languages available is
         | very concise and informative though.
        
       | supliminal wrote:
       | 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 wrote:
         | 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.
        
           | mohamedkoubaa wrote:
           | The end state of genAI is that the end user is the enterprise
        
             | Krssst wrote:
             | 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.
        
               | exe34 wrote:
               | The French will lead the way.
        
               | mapontosevenths wrote:
               | I imagine that the rabble will need to eat only a few
               | before the rest catch on.
        
               | Krssst wrote:
               | The French are on their way to put a far-right government
               | in power next year, don't count on them.
        
               | sph wrote:
               | > 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 wrote:
               | 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.
        
           | nine_k wrote:
           | 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 wrote:
             | 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.
        
       | hyperrail wrote:
       | Both this blog post and the Steven Sinofsky response really set
       | my blood boiling, because they both reek of retired-executive
       | score settling, a kind of blame game that gets played out decades
       | after the fact between ex-high-ranking people in hopes that
       | whoever writes last is able to cement the conventional wisdom.
       | 
       | People who play this corrosive game either refuse to believe that
       | they are at fault for not changing what they were doing _at that
       | time_ or speaking up about what they were observing then, or they
       | know they 're at fault and want to deceptively distract us from
       | that fact. Either way, ask yourself this: "Aren't they sorry?" If
       | they're not, just move on.
        
         | ack_complete wrote:
         | The most offensive part of the Sinofsky response is this part:
         | 
         | > WinRT (2012) - it (or the embodiment in Windows 8) failed in
         | the market but it also showed both the problem and potential
         | solution to building for new markets while respecting the past
         | 
         | I can't express how wrong this is. WinRT was the most
         | destructive thing that the Windows team ever did to the OS. It
         | drove a hard stake into Windows, splitting it in half and
         | declaring that anything previous to Windows 8, oriented toward
         | desktop, or using primary input through mouse and keyboard over
         | touch was dead. Microsoft basically told all existing Windows
         | developers that if they weren't building a new, touch-oriented,
         | mobile-style app specifically for Windows 8, they didn't matter
         | and wouldn't get any support whatsoever, which is exactly what
         | happened every time they broke existing desktop functionality.
         | Calling this "respecting the past" is a crass insult and taking
         | no responsibility for damaging the Windows development
         | experience and accelerating development away from native
         | Windows apps.
        
           | WorldMaker wrote:
           | I think for Sinofsky the "respecting the past" refers more to
           | WinRT was/is still just Spicy COM under the hood. Most of the
           | article as I read it is about how .NET was a mistake for
           | Windows UI development and a return to (Spicy) COM its
           | savior.
        
             | ack_complete wrote:
             | That might have been more significant had the Windows
             | Runtime not been effectively locked off to Metro-style
             | apps. You could technically use it from a desktop app, but
             | almost all of its functionality was only allowed within a
             | Metro-style app, often due to requiring a core window or
             | package identity. Even today the vast majority of useful
             | WinRT APIs, including the entire UI system, require UWP or
             | package identity.
        
               | WorldMaker wrote:
               | Package Identity isn't that different from Signed COM
               | Registration of the ancient past. Microsoft built up a
               | lot of dislike from it by building it "sandbox-first",
               | but the core of it still isn't that different from COM's
               | ancient footpaths, at least to the COM diehards that hate
               | .NET and didn't learn near enough from .NET's battles
               | with the same things in terms of package signing, CAS
               | (Code Access Security), and the GAC (Global Assembly
               | Cache).
               | 
               | "Sandbox-first" even made some sense as a direction to
               | work because it _is_ harder to add a sandbox after the
               | fact than to start with one, which is one of the core
               | lessons learned from XP trying to sandbox some of the
               | insecurities in Win32 and getting caught in a lot of
               | complications. (The  "sandbox-first" of UWP wasn't even
               | that different under the hood from the XP "sandbox" of
               | Folder/Registry Redirection, just a little better
               | hardened.) Microsoft needed a lot better messaging up
               | front if they had expected to allow more apps to leave
               | the sandbox eventually. But Microsoft probably did
               | believe the UWP sandbox was a better and safer experience
               | for consumers.
               | 
               | But yeah, what's left of Package Identity outside of the
               | sandbox feels like it includes several classic mistakes
               | from .NET's CAS/GAC era, and also seems to point out that
               | Sinofsky was wrong about WinRT "respecting the past" when
               | it failed to learn from that era because it didn't trust
               | .NET's history.
        
               | hyperrail wrote:
               | There are still some things that are still locked in the
               | UWP world that I wish were not.
               | 
               | For example, Windows classic desktop apps still have no
               | equivalent to the UWP app lifecycle. Your UWP app's
               | processes can be suspended and resumed without you
               | writing code to force the suspension and request when to
               | be resumed later. Instead, you are expected to
               | appropriately handle event notifications for suspend,
               | resume, and the app entering and leaving background
               | state.
               | 
               | This system-managed UWP app lifecycle makes life harder
               | for UWP app authors, but I think the net win for battery
               | life is much better for the user experience, which is why
               | mobile apps operate the same way. Yet the docs for the
               | Windows App SDK, which is supposed to bring the best of
               | the UWP to desktop apps, explicitly say that WinAppSDK
               | apps control their lifecycle just like other desktop
               | apps, and the only power friendliness in the WinAppSDK
               | API is voluntary (aka no one will use it). [1, 2]
               | 
               | I'll probably write more soon in response to other parts
               | of the original link's comment thread. Overall, I feel
               | like UWP is being unfairly maligned here, and that while
               | its introduction was unforgivably arrogant, Steven
               | Sinofsky is also right that it was daring and necessary
               | to fix the mistakes and outdated decisions of 16-bit
               | Windows and Win32.
               | 
               | [1] https://learn.microsoft.com/windows/apps/windows-app-
               | sdk/app...
               | 
               | [2] https://learn.microsoft.com/windows/apps/windows-app-
               | sdk/app...
        
               | WorldMaker wrote:
               | Those are some good points, and I especially loved that
               | lifecycle management in the era where I used a lot of
               | Windows 8 apps. Even on a Desktop with apps filling up my
               | screen still seeing some of them pinned to 0% CPU most of
               | the time (while I'm multi-tasking) in Task Manager was a
               | delightful magic. I also agree that was one of the best
               | parts of the UWP sandbox and one of the biggest shames
               | when Microsoft had to figure out how to allow sandbox
               | breaks that they couldn't find a way to make the
               | lifecycle and other smarts parts of the sandbox more opt-
               | out by default rather than "opt back into the full
               | sandbox". Of course needing to opt-out by default was one
               | of the reasons developers hated the sandbox in the first
               | place. It's a marketing challenge no matter how you slice
               | it.
               | 
               | That relates to some of my criticism that maybe UWP could
               | have used more .NET veterans because that was one of the
               | problems with the CAS sandbox. For the most part the CAS
               | sandbox was "opt-in" and yeah software developers through
               | ego, hubris, and everything else will most often declare
               | "my app/library is a special snowflake and needs access
               | to everything!" So even if things opt-in to additional
               | security controls like CAS, no one _tests_ or builds for
               | Production in a CAS sandbox so even things that claimed
               | to support CAS threw runtime exceptions all over the
               | place to the point no one could trust CAS to the point
               | were CAS died for being practically useless overhead
               | because no one both opted in _and_ knew how to test it.
               | 
               | UWP had a lot of good ideas. It's insistence that it
               | didn't have much to learn from .NET's mistakes was not
               | one of them.
        
         | jiggawatts wrote:
         | "Retired general criticises the Pentagon" is practically a
         | trope.
        
       | baud9600 wrote:
       | At Redmond, there was also the Patterns & Practices group (P&P)
       | that tried to make sense of the dev products, and built extra
       | libraries "to show customers how to use them". They followed the
       | bouncing ball of the frameworks releases from the main
       | development teams. It suggests that it wasn't clear exactly how
       | you'd use the main products: so P&P said, 'try it like this.' I
       | also think the article didn't say much about MS in the web era.
       | The company survived webdev IMO, but it definitely wasn't the
       | leader
        
       | HumblyTossed wrote:
       | I very much dislike WPF. If I have to do a windows UI (and
       | usually when I do it's a simulator for some piece of hardware), I
       | honestly just grab WinForms. It's stupid simple.
        
         | Surac wrote:
         | Same here. Also the benefit of a visual Editor in Visual Studio
         | is just Premium. Windows.forms also allow all those ,,modern".
         | Takes on ui either with ownerdraw or some grids/hand layouting.
        
       | nullbyte808 wrote:
       | I would bet in Avalonia UI. It's like WPF but cross-platform.
       | https://avaloniaui.net/
        
         | topspin wrote:
         | SDRPlay is using Avalonia for its SDRConnect desktop UI. That's
         | the one native application based on Avalonia I've spent
         | significant time in.
         | 
         | It's ok. I give it pretty high marks. There is a good deal of
         | "lowest common denominator" in it, naturally due to cross
         | platform abstraction. But, it's generally nice, and commercial
         | licenses are affordable.
        
       | senfiaj wrote:
       | For some reason I associate this with this article
       | 
       | https://blog.hiler.eu/win32-the-only-stable-abi/
        
       | barrkel wrote:
       | Windows frameworks got web envy.
       | 
       | Xaml and styling and all sorts to try and compete.
       | 
       | Trouble is, it made desktop development harder, and it didn't win
       | against the web. It left the simple and safe formula of standard
       | and common controls for a designer's playground, but the
       | designers preferred the web. And if you make something for the
       | web, you can package it in Electron and get cross platform
       | cheaply.
        
       | dev1ycan wrote:
       | Starting with Metro every Windows UI framework has been beyond
       | ugly. there's just something so backwards over how nice the UI
       | was in Windows 7, I simply can't understand it.
        
         | lunar_rover wrote:
         | Metro was created partly to run smooothly on cheap Atom tablets
         | and Windows Phones. Then Microsoft shifted their focus
         | elsewhere and iOS 7/OS X Yosemite happened so they have all the
         | reasons to stay flat.
         | 
         | Updated apps look fine, but the majority aren't. And with that
         | bizarre "Show More Options" nesting in the Windows 11 context
         | menu it almost seemed like Microsoft is no longer capable of
         | upgrading old components in place.
        
       | fg137 wrote:
       | Worth mentioning a discussion on a similar blog post two weeks
       | ago;
       | 
       | Windows Native App Development Is a Mess
       | 
       | https://news.ycombinator.com/item?id=47475938
        
       | Retr0id wrote:
       | A decade or so ago, I had a clear idea of what a "native ui"
       | should look and feel like, even if there were multiple routes to
       | get there. I don't know any more.
        
       | zer0zzz wrote:
       | Couldn't someone do a similar story about scripting on windows,
       | and make Jeffrey Snover one of the punchlines?
        
       | brookst wrote:
       | s/\sGUI\s/\s/g
        
       | userbinator wrote:
       | The tl;dr is basically to stay with Win32 and ignore all the new
       | and shiny.
       | 
       | That AI image at the end was more amusing than informative.
       | Almost lost it at "Win15" and "Chrondum + frade.js".
        
       | garganzol wrote:
       | The UI strategy of the future may very well be HTML. It's
       | widespread, standardized, sufficiently performant, and pretty
       | rich.
       | 
       | What's still missing is deeper integration with native OS
       | concepts and programming languages other than JS. Frameworks like
       | Electron are a step in that direction but they come with notable
       | drawbacks. Applications often struggle with things that should
       | feel natural like managing multiple OS-level windows.
       | 
       | Another PITA: Electron apps repeatedly bundle large portions of
       | Chromium, leading to unnecessary overhead. Those duplicated
       | modules lead to bloated RAM usage: every app has its own Chromium
       | copy and OS must keep all that zoo in RAM without a possibility
       | of reusing the otherwise shareable parts.
        
         | w4yai wrote:
         | I've been hearing that for 10+ years. This is not going to
         | happen.
        
           | garganzol wrote:
           | This has already happened de-facto. Optimize it properly, and
           | the whole problem disappears.
        
         | lazide wrote:
         | HTML and CSS are also absurdly hard to actually do anything
         | useful with or interactive compared to normal desktop or app
         | frameworks.
         | 
         | Orders of magnitude more BS, plumbing, awkwardness, head
         | scratching, etc.
        
           | garganzol wrote:
           | That was indeed a pain point, but not anymore after CSS flex
           | layout became available some 10 years ago. It's not worse
           | than WPF for sure. It's even better than WPF because you have
           | access to tons of UI components and toolkits that work
           | everywhere.
        
             | lazide wrote:
             | Uh huh.
        
               | tredre3 wrote:
               | I think you're comparing hand-writing an HTML/CSS
               | interface to the WYSIWYG form editor of Qt or Visual
               | Studio? Because hand writing a GUI in Qt/QML/C++/.NET is
               | not any easier than writing it in HTML. There are tons of
               | boilerplate and special markup to learn. The magical
               | editor just hides all the plumbing from you.
               | 
               | I'll grant you that the lack of good WYSIWYG designers
               | for working on web/electron apps is appalling, it's like
               | RAD peaked in 1998 with VB6 and it's been downhill ever
               | since.
        
               | lazide wrote:
               | Not having to round trip through ACL/security checks.
               | 
               | Not having to deal with state management.
               | 
               | Not having to deal with browser compatibility issues (and
               | mobile vs desktop).
               | 
               | Not having to deal with weird input validation stuff dual
               | layer stuff that is inherent in web apps, but not a big
               | deal elsewhere.
               | 
               | Not having to deal with laggy and unstable connections at
               | the UI layer.
               | 
               | Etc, etc.
        
         | disconcision wrote:
         | not exactly the same, but worth noting that in a spectacular
         | display of being too early, microsoft shipped this 30 years ago
         | (active desktop in 1997 merged the windows explorer with
         | internet explorer, turning folders into web pages).
        
           | vachina wrote:
           | It is despised for the same reason web based UI is despised
           | today. Firefox OS was also "too early" and failed.
        
             | rincebrain wrote:
             | It was more despised for being a gaping security hole than
             | anything else, as I recall - the things you could do with
             | it were really neat demos, but even back then, I said "I am
             | not loading a random website that can access local things
             | every time I log in".
        
         | jimbokun wrote:
         | That's the strategy of 20 years ago.
        
         | kmeisthax wrote:
         | There's a competing webapp-wrapper framework that explicitly
         | uses the platform's own browser, but developers don't like
         | being at the mercy of whatever the OS ships...
        
         | bigstrat2003 wrote:
         | > sufficiently performant
         | 
         | In _no universe_ is HTML performant compared to actual desktop
         | applications. It sucks big time.
        
       | mwcampbell wrote:
       | > 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.
        
         | rincebrain wrote:
         | 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...
        
           | bombcar wrote:
           | Apple had been doing GPU-accelerated GUIs since the early
           | NeXT days; it was certainly possible on hardware weaker than
           | what Vista required.
        
             | runjake wrote:
             | 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_Ext
             | r...
        
             | kalleboo wrote:
             | 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
             | -...
        
             | Zardoz84 wrote:
             | 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 wrote:
               | 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 wrote:
               | 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 wrote:
               | 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 wrote:
               | 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 wrote:
               | That's the real takeaway - WPF should have degraded
               | gracefully (read, full speed performance without the
               | bling) but it didn't.
        
               | bombcar wrote:
               | 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.
        
             | cyberax wrote:
             | 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.
        
           | mwcampbell wrote:
           | 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.
        
             | rincebrain wrote:
             | My recollection of current events at the time was that you
             | were already having a dogshit experience using computers
             | for many common things in the XP era with underpowered
             | video hardware and trying anything complex in a browser, or
             | Flash things with a lot of assets, so it's less forcing
             | escalating a baseline and more recognizing the realities of
             | what people were already expecting in a "good" computer and
             | building thing that could take advantage of that.
             | 
             | I would agree it should have degraded much more gracefully
             | and more readily than it did, but I'm quite confident we
             | hadn't hit the point of minimal returns on improvements in
             | hardware that would be necessary for such an argument yet.
             | 
             | Hell, I probably wouldn't make that argument until large
             | amounts of RAM and VRAM (or unified RAM) are ubiquitous,
             | because so many workloads degrade so badly with too little
             | of either.
        
         | n8cpdx wrote:
         | 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 a 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 wrote:
           | What have you heard about SwiftUI being bloated?
        
             | n8cpdx wrote:
             | 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 wrote:
               | 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.
        
         | seltzered_ wrote:
         | 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 wrote:
           | 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 wrote:
             | 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 wrote:
           | 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.
        
         | fleventynine wrote:
         | 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...
        
         | nottorp wrote:
         | Hmm doesn't that sound like Apple's Tahoe/iOS 26? Effects upon
         | effects upon more effects.
        
           | steve1977 wrote:
           | iOS 26 runs surprisingly smooth on my iPhone 12 Pro Max
           | though.
        
             | nottorp wrote:
             | Runs like crap on my daughter's 12 mini.
             | 
             | Actually what does "surprisingly smooth" mean? Better than
             | you expected? Or actually smooth?
        
               | steve1977 wrote:
               | 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.
        
           | cyberax wrote:
           | 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.
        
         | wiseowise wrote:
         | 2008 edition of "let's rewrite it in react".
        
           | sylens wrote:
           | 2008 had its own version of React and it was called Adobe Air
        
             | beAbU wrote:
             | Adobe Air was just Flash wearing an ill fitting business
             | suit.
        
         | fsloth wrote:
         | "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
        
         | aleph_minus_one wrote:
         | > 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 wrote:
           | 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.
        
             | chris_wot wrote:
             | 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!
        
             | bgrainger wrote:
             | 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...
        
         | ecshafer wrote:
         | 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.
        
       | eqvinox wrote:
       | The answer is, clearly, Qt.
       | 
       | (This isn't even a joke. Assuming you're not going Electron.)
       | 
       | Part of the reason here is that it's their main business. They
       | can't afford letting it languish and/or changing direction every
       | 6 months.
        
         | ansgri wrote:
         | Which one? The classic QtWidgets, which implements consistent
         | controls but sometimes talked about as deprecated (same as
         | WinForms), or QML, which is "modern" and "actively developed"
         | but does not provide native look and feel and requires (or at
         | least used to require) a lot of manual work to support proper
         | keyboard control and accessibility?
        
       | psychoslave wrote:
       | Microsoft itself is a business driven by a consistent strategy of
       | striving for market dominance no matter the means. looking for
       | coherence in the resulting DX is missing the forest for the tree.
        
       | jowelene wrote:
       | Microsoft has a very coherent strategy, described aptly in "fire
       | and motion" by Joel spolsky 24 years ago: keep changing the
       | API/GUI every 2 years:
       | 
       | https://www.joelonsoftware.com/2002/01/06/fire-and-motion/
        
       | MarcelinoGMX3C wrote:
       | 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.
        
         | gunsle wrote:
         | Insightful comment
        
         | GaProgMan wrote:
         | I agree. Except that WinForms has not been abandoned. In fact,
         | it's one of the supported paths in the modern .NET stack.
        
           | Dwedit wrote:
           | 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.
        
             | DeathArrow wrote:
             | >WinForms is a layer built on top of raw Win32. So it's not
             | portable.
             | 
             | Neither are SwiftUI and AppKity.
        
             | pjc50 wrote:
             | 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.
        
             | anthk wrote:
             | 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 wrote:
               | 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 wrote:
               | Mono supported WinForms. But IDK how did they integrate
               | it with the CIL.
               | 
               | But for sure they used WineLib.
        
           | zerr wrote:
           | It lacks hardware acceleration.
        
             | RedShift1 wrote:
             | Does it need it?
        
         | TiredOfLife wrote:
         | > Apple solved this
         | 
         | This comment written before Tahoe
        
           | dagmx wrote:
           | 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.
        
             | direwolf20 wrote:
             | That's a bad thing. It breaks apps. Apple has decided to
             | stop supporting apps that aren't continually updated.
             | Microsoft hasn't.
        
               | audunw wrote:
               | 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.
        
             | TiredOfLife wrote:
             | 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
        
               | dsego wrote:
               | 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.
        
               | dagmx wrote:
               | 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.
        
         | pjmlp wrote:
         | 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?
        
           | Iulioh wrote:
           | The evergreen question of "how do you go back and/or close an
           | app on IOS?"
        
             | bayindirh wrote:
             | It's _still_ easier than Windows CE though.
        
             | mckn1ght wrote:
             | 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 wrote:
               | 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 wrote:
               | 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 wrote:
               | 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 wrote:
               | 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 wrote:
               | 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 wrote:
               | I believe swiping from left to right is common for both
               | Android and iOS.
        
               | pndy wrote:
               | Android has both a swipe gesture or a widget that
               | simulates buttons that used to be at the bottom of the
               | screen
        
               | bayindirh wrote:
               | ...and iOS has both an arrow at the top left and a swipe
               | gesture. I can't see how they are _that_ different.
        
             | teekert wrote:
             | 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.
        
               | Iulioh wrote:
               | 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 wrote:
               | 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 wrote:
               | 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_.
        
               | alpaca128 wrote:
               | 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.
        
               | dsego wrote:
               | 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?
        
               | ioseph wrote:
               | It's not just mental, as you age you lose moisture in
               | your skin and with that accuracy with touch devices.
        
               | ShroudedNight wrote:
               | 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.
        
               | teekert wrote:
               | 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...
        
               | david422 wrote:
               | 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.
        
             | cloud-oak wrote:
             | 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.
        
               | simonask wrote:
               | How is bad UX in the YouTube app Apple's fault? You can
               | mess up Android's back button as well.
        
               | Iulioh wrote:
               | Because Apple does not enforce uniformity
        
               | justsomehnguy wrote:
               | If Ah, yes, problems with the UI on the OS which for 99%
               | consists of modals is not the OS vendor problem, noted.
        
               | atombender wrote:
               | 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 wrote:
               | 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.
        
             | robertoandred wrote:
             | You swipe backward. Been that way for twenty years.
        
           | steve1977 wrote:
           | 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 wrote:
             | 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 wrote:
               | 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 wrote:
               | 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 wrote:
               | 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 wrote:
               | Nope, it is the same issue now being worded around to
               | sell the Apple is shiny story above.
        
               | paavope wrote:
               | Nobody in this thread is claiming Apple is perfect, just
               | ahead of MS in UI consistency and _less_ buggy
        
               | pjmlp wrote:
               | "Ahead" with yes but attitude.
        
               | steve1977 wrote:
               | 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.
        
               | rTX5CMRXIfFG wrote:
               | > 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 wrote:
               | The whole point was the greatness of Apple platform.
        
               | rTX5CMRXIfFG wrote:
               | 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 wrote:
               | They use React Native and Flutter because they want to
               | target more than just MacOS/iOS
        
               | pjmlp wrote:
               | Meaning they don't worship Apple UIs as the ultimate
               | design?
        
               | tantalor wrote:
               | 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.
        
         | Kwpolska wrote:
         | 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 wrote:
           | Sure, but you could have had a uniform design language for
           | the last 3 or so frameworks.
        
           | solarkraft wrote:
           | 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.
        
         | bartread wrote:
         | > 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 wrote:
           | 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 wrote:
             | 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 wrote:
               | 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 wrote:
               | 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
        
               | StilesCrisis wrote:
               | 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.
        
               | vouwfietsman wrote:
               | 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.
        
               | sizeofdouble wrote:
               | 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.
        
         | atoav wrote:
         | 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..
        
       | hacker_homie wrote:
       | I feel this so hard.
       | 
       | It's all win32 underneath except for UWP, which is now
       | deprecated.
       | 
       | so the answer is win32, raw winproc.
       | 
       | The issue is they haven't made a new GUI API (only frameworks)
       | since win32.
        
         | hacker_homie wrote:
         | To add the UWP APIs were always less than the win32 ones in the
         | name of security.
         | 
         | The issue was they didn't give you an alternative they just
         | said don't do that.
         | 
         | so inevitably at some point you decide to just write it in
         | win32, don't ship in the store, etc so you can get things done.
        
           | snarfy wrote:
           | If an app has a zip download or a Microsoft Store link, the
           | zip download is always a superior experience. UWP is a huge
           | fail
        
       | dartharva wrote:
       | Here's how I think Microsoft can get a quick and sustained
       | longterm win in GUI (/s but only partially) -
       | 
       | 1. Drop all its GUI stacks apart from legacy Win32
       | 
       | 2. Port KDE Plasma to Windows (with aliased bindings to support
       | traditional explorer.exe calls so as to not break user apps)
       | 
       | That's it. There really aren't many significant apps that use the
       | rest of Microsoft's stack apart from Win32 that won't recover
       | from this, and Microsoft itself will just see a massive drop in
       | its own costs with a massive rise in user satisfaction.
        
       | keithnz wrote:
       | funny thing is, with AI, it's become really easy to put win32
       | apps together, and they load fast and are super responsive!
        
       | jeswin wrote:
       | Microsoft's biggest mistake was .Net being a Java competitor when
       | it should have just been like golang producing native binaries.
       | Especially since .Net was realistically only going to succeed on
       | x86/64 at that point (late 90s and 2000s). This shut the door on
       | C# for consumer UIs, and people stuck to Visual Basic and MFC.
       | 
       | It took them more than 2 decades to finally support pure native
       | binaries (via NativeAOT). And it's fantastic for servers on
       | Linux.
        
         | donatj wrote:
         | The problem was in the early 2000s it was basically accepted
         | x86 was a dead end whose days were numbered.
         | 
         | Itanium was the heir apparent but importantly basically
         | vaporware. How do you develop software _NOW_ and more
         | importantly sell and ship software _NOW_ that 'll work on a CPU
         | you don't have access to and for which good compilers don't
         | really exist yet? I remind you in the days where online updates
         | were a luxury at best.
         | 
         | Processor agnostic CIL/JIT code was the prescribed solution at
         | the time. Java had lit the way, and it was the only "clear"
         | path forward for better or worse.
         | 
         | Little did we know Itanium would implode, and x86-64 would rise
         | and give 20+ more years of binary compatibility.
        
         | randomfool wrote:
         | They were recovering from all of the security fiascos of
         | software that wasn't being updated. So they pushed as much as
         | they could into the core libraries and forced only one version
         | to be installed at a time- so they could easily push security
         | fixes.
         | 
         | This led to one of the trickiest things for early .NET consumer
         | apps- getting the latest runtime installed.
        
       | kerv wrote:
       | Petzold literally had the Windows logo tattooed on his arm. He
       | was a true believer.
        
       | d--b wrote:
       | > WPF shipped in late 2006. It was remarkable - XAML, hardware-
       | accelerated rendering, real data binding. If Microsoft had made
       | it the definitive answer and invested relentlessly, the story
       | might have ended differently.
       | 
       | Er... The author perhaps never used it? WPF was the worst
       | framework I ever used. It was unbearably verbose, brutally
       | unforgiving, used 2-way bindings that created updating
       | nightmares, ans not the least it was incredibly slow.
       | 
       | WinForms was not the best for sure, but at least you can get
       | stuff done. It was for a long time the right answer to the
       | question the author asked. .Net + WinForms worked well.
       | 
       | When WPF shipped was when the shit hit the fan.
        
         | tonyedgecombe wrote:
         | All that and they abandoned it at birth. It never felt finished
         | and got little to no attention for years.
        
         | moogly wrote:
         | > XAML
         | 
         | This is the common thread of all their frameworks since, and in
         | my mind the reason they are stuck in an absolute quagmire. For
         | a while it was possible to use HTML/JS in UWP (I think), but it
         | didn't stick due to everyone already needing to move over their
         | LOB apps with crazy amounts of XAML so that's what the focus
         | was on.
         | 
         | "Hey, let's make something that's vaguely HTML but not really
         | at all."
         | 
         | Big mistake.
         | 
         | Avalonia and Uno are repeating that mistake, even though with
         | Uno, at least, there's a blessed way to do unidirectional data
         | flow/reactive stuff.
         | 
         | Two-way data binding is the devil.
        
       | sharts wrote:
       | This will never change. All large orgs are this way because at
       | the end of the day, unless its preventing them from making
       | profits, there is no incentive to change it.
       | 
       | Moreover, there isn't much in the way of alternatives. Everyone
       | likes to hate on MS --for decades this has happened and nothing
       | came of it.
        
       | dataflow wrote:
       | WPF was atrocious from the beginning and Microsoft absolutely did
       | the right thing by not basing everything in Windows on it.
       | 
       | Every WPF program was laggy and took ages to even start up (is
       | everyone forgetting hard disk speeds?), partly due to it being
       | managed code. The components didn't feel native either, and the
       | coupling to managed code and garbage collection basically ensured
       | all those would be perpetual issues. Yeah the programming model
       | was beautiful and all, but you're supposedly developing to make
       | your customers happy, not to make yourself or computer scientists
       | happy.
       | 
       | You can see how terrible it would've been to base Windows's shell
       | on WPF by looking at how much users have loved the non-Win32
       | windows since then.
        
         | tonyedgecombe wrote:
         | I'm not sure I would blame the problems of WPF on managed code.
         | After all we had snappy WinForms applications before WPF came
         | along.
        
           | dataflow wrote:
           | Kind of yes, kind of no:
           | 
           | - WinForms applications also took visibly longer to load than
           | Win32. I didn't dread loading them nearly as _much_ as WPF,
           | yes, but I still did. They weren 't what I'd call " _snappy_
           | ", but they were... usable enough.
           | 
           | - WinForms also stuttered (in my experience) with the GC.
           | Again, not "snappy" in my experience, but this was more
           | dependent on your use case.
           | 
           | - WinForms were .NET 2.0 rather than .NET 3.0, with fewer
           | modules to load. It certainly felt more lightweight, which
           | from my memory (of how the hard disk behaved) correlated with
           | that.
        
       | blabla1224 wrote:
       | While reading all these comments I keep asking myself if these
       | are the same people who would get angry at another Election app
       | because someone was lazy and didn't make it native.
        
       | usrbinenv wrote:
       | I was recently exploring "an OS from scratch" architecture with
       | ChatGPT. Apart from the central idea that I wanted it to be a
       | capability OS, I also started thinking about how I'd make GUI
       | apps and what layers would naturally make sense.
       | 
       | The cleanest design I came up with works like this:
       | 
       | 1. At Layer_1 OS provides panes or windows to which apps can
       | render whatever graphics using OS gpu lib (think Raylib, but
       | maybe a bit simpler). This is good for apps that want
       | performance, games, text editors, things like that - so this is
       | maximum control.
       | 
       | 2. Next Layer_2 would be based on the browser engine (which, to
       | some degree, would have to be developer - not a full browser, but
       | just enough to render more or less modern html/css with a DOM-
       | aware JS engine). Then provide some XML schema that would
       | automatically translate into HTML/CSS to render various UI-
       | widgets (defined by XML/HTML elements). This would eventually
       | suggest a JavaScript UI framework on top, but no a requirement.
       | This layer is flexible enough that it uses widgets defined by the
       | system, but allows custom CSS and JavaScript.
       | 
       | 3. Layer_3, or more like Layer_2.5 would basically allow custom
       | HTML/CSS without relying on system widgets and XML schema.
       | 
       | Obviously you can mix all three layers into one GUI too. Finally
       | layers (2) and (3) would require some client/server architecture,
       | but instead of shipping it like a webapp, I'd probably provide
       | some JavaScript API to talk to the backend (which in this case is
       | accessible via a socket of some sorts). Apps themselves could
       | still be single binaries that include html/css/js assets which
       | are provided at launch time to the system UI renderer, which then
       | uses them to render the UI via a webview in said pane or window.
       | 
       | I think it's pretty slick and it only gets complicated gradually,
       | but it also requires solid OS plumbing and machinery to make this
       | process smooth. None of the modern systems are capable of it in
       | the way I described it, so people end up shipping nodejs/react
       | apps with webview inside gigabyte-binaries.
        
         | ahartmetz wrote:
         | L1: Wayland, L2: QML / Slint / XAML etc, L3: Yes, these allow
         | custom widgets
        
       | dinkumthinkum wrote:
       | Anyone else sit through one of those Microsoft "Project Reunion"
       | and wonder "what the hell is even this?" Microsoft has had a
       | completely confusing UI strategy for years.
        
       | scorpionfeet wrote:
       | One could argue the 17 solution summary is actually correct? Why
       | should an os be limited to just one way of doing things. I don't
       | believe my own words 100% but it is a thought that maybe
       | diversity is the eventual outcome. Ubuntu and MacOS are kinda
       | fighting the same battle. Is that just the way it is?
        
       | avmich wrote:
       | MS Windows is walking joke for at least a decade, UI consistency
       | isn't it biggest problem. Unfortunately both Linux and MacOS have
       | their own deeply seated issues. This leaves users in an
       | unenviable situation and encourages experimenting, with AI
       | encouraging more and faster attempts. When AI are getting
       | better... I hope this question will become unimportant sooner
       | rather than later.
        
       | kombine wrote:
       | I remember I was trying to learn GUI programming in late 2000s. I
       | took an attempt at MFC but no matter how hard I tried, it just
       | didn't make any sense. Then I found out about Qt 4 and it felt
       | like magic immediately. I ended up working as a professional Qt
       | software developer for 3 years.
       | 
       | Fast forward to now, and KDE Plasma is state of the art Linux
       | desktop that I've been daily driving for years. It's also built
       | on Qt.
        
       | WhereIsTheTruth wrote:
       | Every year the same debate, every year the same Microslop
       | apologists in the comments, every year nothing ever changes,
       | every year Microslop's market cap keeps groing, every year the
       | same problems
       | 
       | Microslop should have been dismantled decades ago, it's now too
       | late, we need a paradigm shift so that Microsoft no longer
       | affects our society
        
         | tonyedgecombe wrote:
         | Every year Windows loses a little more market share.
        
       | gherkinnn wrote:
       | I had the displeasure to work with various MS systems over the
       | years and coherence is not a concept in Redmond. It just isn't.
       | 
       | The layers of outdated and conflicting documentation, fragmented
       | logins, the naming (365, live, .net [both naming everything that
       | and the .net core naming labyrinth], copilot), Teams never made
       | sense, Windows had levels and levels of settings (win10
       | preferences all the way back to dialogs predating the mammoth).
       | 
       | MS was, is and always be a blight upon this earth.
        
       | bob1029 wrote:
       | Winforms is still compelling to me. Now that we have WebView2,
       | building complex hybrid apps is trivial. I know I could easily go
       | pure web, but something about having proper native chrome feels
       | better as a user. All of my clients/users are on windows so I
       | stopped fighting this battle years ago. I've recently been using
       | .NET10 + Winforms + WebView2 to build custom ai assistants for
       | others. I cannot imagine how much it would suck to iterate the
       | presentation of a conversation history in pure win forms. The
       | hybrid stuff is crazy productive.
        
       | PeterStuer wrote:
       | As an outsider, it always felt that 'internal team politics' were
       | the root cause of Microsoft's technological downfall. This went
       | far beyond the GUI. In 'flagship' offerings like SharePoint or
       | Skype/Lync/Teams you could see the unmixable partial code-bases
       | brutally forced together under a single product name an foisted
       | upon a user-base baffled by how this could have gone so wrong.
        
         | rhet0rica wrote:
         | A single product name, you say? COPILOT, COPILOT, COPILOT!
        
       | wg0 wrote:
       | 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.
       | 
       | .
        
         | AdvancedCarrot wrote:
         | I think the answer is simple - they wanted to Sherlock Java.
        
           | emddudley wrote:
           | 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
        
         | simonask wrote:
         | 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 wrote:
           | 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 wrote:
             | 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 wrote:
               | Okay thank you. I need to read more on the subject the.
        
               | icelusxl wrote:
               | The "Performance Improvements in .NET" blog lists the new
               | JIT support for instruction sets each year.
               | 
               | https://devblogs.microsoft.com/dotnet/performance-
               | improvemen...
        
         | wolfi1 wrote:
         | 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
        
         | IshKebab wrote:
         | > 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.
        
         | pjc50 wrote:
         | > 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 wrote:
         | > I never understood.NET's purpose. What problem it exactly
         | went out to solve?
         | 
         | Java. Java is the problem .NET attempted to solve.
        
         | starik36 wrote:
         | WinForms still exist, still supported, still getting new
         | features. And it's open sourced.
         | https://github.com/dotnet/winforms
        
         | hnthrowaway0315 wrote:
         | 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.
        
       | nurettin wrote:
       | Honorable Mention: Lazarus
        
       | DeathArrow wrote:
       | At this point I don't get why they don't open source Windows and
       | developer tools, make a foundation to steer the code, accept
       | contributions and borrow ideas from other operating systems.
        
         | tonyedgecombe wrote:
         | One of their problems is borrowing ideas from other operating
         | systems. Windows is full of Apple envy whether the addition
         | made sense or not.
        
       | gt0 wrote:
       | _When a platform can't answer "how should I build a UI?" in under
       | ten seconds, it has failed its developers. Full stop._
       | 
       | That's fine, except no platform answers this.
       | 
       | Obviously Linux doesn't, but the Mac doesn't either. Apple of
       | course has it's recommendation, but most developers do not take
       | Apple's recommended path because of course, it's Apple-only, most
       | developers make cross-platform apps these days.
       | 
       | Even if Microsoft decreed the one-and-one Windows development
       | path, most developers are not taking that path.
       | 
       | It used to be the case that Mac developers used Apple tools,
       | Windows developers used Microsoft tools, but those days are gone.
       | Developers want to use Electron, or Qt, or some other system to
       | support multiple platforms in one codebase.
       | 
       | Microsoft has less to do with this than the article makes out.
       | I'm a desktop developer. I don't care what Microsoft recommends,
       | or what Apple recommends, because neither work in the real world
       | where supporting only their platform just isn't realistic.
        
         | rwmj wrote:
         | Linux can answer the question, but you're considering Linux as
         | a monolithic platform which it isn't. If you ask _" how do you
         | build a UI for Gnome / KDE / Android?"_ then the answers are
         | pretty clear.
        
           | haskman wrote:
           | Also, being KDE native means using QT which is a good cross
           | platform toolkit anyways.
        
             | iamcalledrob wrote:
             | ...but then feeling out of place on GNOME / GTK4 /
             | LibAdwaita-land
             | 
             | Linux is a mess, but at least it's unapologetically so.
        
               | mikkupikku wrote:
               | They've got unified themes that make GTK and Qt
               | applications look nice alongside each other. Users who
               | care will be using those. Users who _really_ care might
               | refuse to use your application because it isn 't the
               | toolkit they like, but you shouldn't lose sleep over
               | satisfying such particular and demanding users. They're
               | not paying you anyway.
        
             | mikkupikku wrote:
             | Tbh Qt is so big you've still got a few minutes of decision
             | making after you've decided to use it. What parts will you
             | use and how will you use them?
        
         | vladvasiliu wrote:
         | I think the mac mostly does this. Developers not caring about
         | the answer is a different thing.
         | 
         | But I gather from your comment that you don't actually care to
         | ask that question, since you have a different need, and already
         | have a solution which works for you. Which I guess is fine if
         | you're happy with the compromise.
         | 
         | But this is about people who actually still care to have
         | "native" applications.
        
       | rwmj wrote:
       | Petzold is a legendary programmer. His book _Code_ is worth
       | reading:
       | https://en.wikipedia.org/wiki/Code:_The_Hidden_Language_of_C...
        
       | shiandow wrote:
       | 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_.
        
         | iamcalledrob wrote:
         | 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).
        
           | tomrod wrote:
           | This is why, for me, year of the Linux desktop was 2008. It's
           | been atrocious since then.
        
           | marcos100 wrote:
           | 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%.
        
             | ShroudedNight wrote:
             | 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_
        
             | bityard wrote:
             | 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.
        
               | kristofferR wrote:
               | Try installing Sidebery or a good adblocker on Chrome.
        
               | throwaway2037 wrote:
               | I use AdBlock on Chrome. It is excellent. Do you not like
               | it?
        
               | pxc wrote:
               | 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 wrote:
               | >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 wrote:
               | > _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 wrote:
               | 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_?
        
               | webstrand wrote:
               | Container tabs, independent proxy config (chrome only
               | respects system-wide proxy), vertical tabs, and
               | functional adblockers are the four big features for me.
        
             | hliyan wrote:
             | 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).
        
             | iamcalledrob wrote:
             | 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.
        
             | shmeeed wrote:
             | >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 wrote:
               | That's not remotely universal, but they did consider
               | that. It's immaterial.
        
           | rigonkulous wrote:
           | >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 ..
        
             | jen20 wrote:
             | > 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 wrote:
               | 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.
        
             | vovavili wrote:
             | >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 wrote:
               | 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.
        
               | vovavili wrote:
               | 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 wrote:
               | 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.
        
               | vovavili wrote:
               | Could be, but I am mostly speaking about the fact that
               | making a web app looks stylish feels infinitely easier to
               | me.
        
               | radiator wrote:
               | > - Qt Widgets worked fine, but looked like a piece of
               | software made in 2013;
               | 
               | That's too bad, because I prefer software which looks
               | like it was made in 1999.
        
               | iamcalledrob wrote:
               | 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 wrote:
               | 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 wrote:
               | I think what you're asking for has existed for a long,
               | long time. QML.
        
               | gr4vityWall wrote:
               | 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.
        
               | rigonkulous wrote:
               | 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.
        
             | cineticdaffodil wrote:
             | It seems you fumbled your starmenue click, the start menue
             | will be right back, right after these messages.
        
           | graemep wrote:
           | > 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.
        
           | liendolucas wrote:
           | 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 wrote:
             | 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 wrote:
               | Wait, mail clients other than mutt exist?
        
             | rnd0 wrote:
             | >And at that point you also realize that are better OSes
             | 
             | Nothing beats Windows 11+WSL2; literally the best of both
             | worlds.
        
           | mghackerlady wrote:
           | I'm planning on writing a desktop (I've wrote about some of
           | my goals here before) precisely for this reason
        
           | hypersolo wrote:
           | 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.
        
           | croes wrote:
           | 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
        
           | b00ty4breakfast wrote:
           | 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.
        
           | butlike wrote:
           | The issue is that everyone wants a full-featured remote with
           | only "on, volume, and channel changing" buttons.
        
           | runjake wrote:
           | _> 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).
        
           | jlarocco wrote:
           | > 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.
        
         | MichaelRo wrote:
         | 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.
        
           | ptaffs wrote:
           | 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 wrote:
           | 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 wrote:
             | Or better yet, Settings > Apps > Default apps > select a
             | different browser
        
           | hbn wrote:
           | 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.
        
         | khelavastr wrote:
         | Some Microsoft managers started suppressing people who reported
         | internal defects, instead of leveling their teams up
        
           | pfdietz wrote:
           | That sounds like Goodhart's Law in action.
        
             | khelavastr wrote:
             | Bad metrics. That's why Microsoft cleaned house of midlevel
             | managers a couple years ago. But the culture remained in
             | places.
        
         | kerblang wrote:
         | > 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 wrote:
           | 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.
        
         | SarahC_ wrote:
         | 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.
        
         | loeber wrote:
         | 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 wrote:
           | 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 wrote:
             | 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 wrote:
               | 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.
        
             | cosmic_cheese wrote:
             | I'm not convinced that it's possible to create a UI toolkit
             | that works on both desktop and mobile without one
             | compromising the other. It's a bit like trying to design a
             | vehicle that can serve both as a 2-ton pickup truck and as
             | a golf cart; the needs of the two are just too different.
        
           | jlarocco wrote:
           | The rules didn't have to be reinvented - web/mobile devs
           | chose to ignore them.
        
         | kogasa240p wrote:
         | Because everything got made for smartphones and touchscreens
         | while desktop users are left to suffer in the mediocrity.
        
         | stronglikedan wrote:
         | - 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.
        
         | 12_throw_away wrote:
         | > basic rules that had been in place for ages. Things like:
         | [...]
         | 
         | I am going to add my favorite here, just to rant into the void.
         | A dialog box's options must _never_ be Ok /Cancel. These are
         | not the same sorts of things. "Cancel" is a verb, "Ok" is a
         | noun (in this context). Even if "Ok" is taken to mean the verb
         | "acknowledge", it is still not an alternative to cancelling.
         | 
         | 99% of these dialogs should be "[Verb]/Cancel": Change "Ok" to
         | a verb or short phrase indicating the action that will be taken
         | if you press it. Don't do the action if the user hits "cancel".
         | The verb should be something specific like "Delete file" or
         | "Terminate process" and not something useless like "proceed".
        
       | fareesh wrote:
       | The root of the problems seems to be trying to find a holy grail
       | design that works across all their businesses. Surface tablet
       | mode, touchscreen laptop, touchscreen desktop (surface studio),
       | mouse and keyboard PC, stylus input, etc.
       | 
       | Then there's a lot of legacy stuff that needs to continue working
       | because otherwise you end up with a non backwards compatible
       | windows.
       | 
       | Then you have to get everyone at microsoft across all their
       | bajillion products to change the UI from Task manager to the 5th
       | level of settings for some obscure ODBC connector.
       | 
       | It's not going to happen I suspect
        
       | redbell wrote:
       | This 2018 video from TechAltar discusses the same topic: Why
       | Microsoft Can't Design A Consistent Windows
       | (https://youtu.be/hn5QjtpjW_U)
        
       | shevy-java wrote:
       | "I looked at the presenter like they had a rat's tail hanging out
       | of his mouth for the entire hour."
       | 
       | Could have been Ballmer getting a quick snack in before anger-
       | presentation.
        
       | iamcalledrob wrote:
       | 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).
        
         | hu3 wrote:
         | 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!!!"
        
           | brennanpeterson wrote:
           | 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.
        
           | Topfi wrote:
           | 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 wrote:
           | 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 wrote:
             | For all the grief they are getting GTK4/Adwaita/Gnome is
             | doing a lot for performance and consistency of experience.
        
         | hypercube33 wrote:
         | 4-6 cores and 8GB standard* 8 Cores and 32GB+ is the higher
         | end.
        
         | duped wrote:
         | 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.
        
         | icedchai wrote:
         | 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 wrote:
           | Resizing was based on a wireframe system and windows weren't
           | repainted during resizes.
        
             | icedchai wrote:
             | Yes, I agree, it's not apples-to-apples... but we're
             | talking orders of magnitude in CPU, RAM, and "GPU" power.
        
       | SkunFly wrote:
       | The slop image at the end made not read anything in this article.
        
       | raincole wrote:
       | The funny thing is that Joel Spolsky predicted most of it 20
       | years ago[0]:
       | 
       | >> Jon Udell found a slide from Microsoft labelled "How Do I Pick
       | Between Windows Forms and Avalon?" and asks, "Why do I have to
       | pick between Windows Forms and Avalon?" A good question, and one
       | to which he finds no great answer.
       | 
       | And:
       | 
       | >> Which means, suddenly, Microsoft's API doesn't matter so much.
       | Web applications don't require Windows.
       | 
       | What he _didn 't_ see is, however, Azure would become the money
       | printer for Microsoft and made all these no longer matter.
       | 
       | [0]: https://www.joelonsoftware.com/2004/06/13/how-microsoft-
       | lost...
        
       | scotty79 wrote:
       | I stuck with WinForms. It was the last tech that made your app
       | look and feel like Windows app.
       | 
       | Everything that came later was basically a struggle to make
       | something that Electron actually delivered.
        
       | rigonkulous wrote:
       | My coherent GUI strategy: just use JUCE.
       | 
       | Invested in it, shipped it, seen it solve the cross-platform
       | problem beautifully.
       | 
       | Can just write C++, and see it running everywhere.
       | 
       | The JUCE GUI capabilities are more than adequate for many, many
       | things.
       | 
       | There are other platform-scaffolded cross-platform frameworks.
       | JUCE is cromulantly FNORD.
        
         | SyneRyder wrote:
         | That sounds intriguing - are there examples of desktop apps (eg
         | productivity apps) that are made with JUCE?
         | 
         | I'm already very familiar with JUCE in VST plugins, I have
         | hundreds of VSTs made with JUCE and I love their UIs. But I
         | don't think I've ever seen it for a standalone business
         | application?
         | 
         | The JUCE pricing is certainly far more reasonable than Qt.
        
           | rigonkulous wrote:
           | >desktop, productivity apps
           | 
           | You can configure your JUCE project to build to any of the
           | standard audio plugin formats, or for it to build a
           | standalone app for the target platform (i.e. plugins,
           | desktop, mobile, embedded) or indeed to build all of these
           | targets, at once, in one build.
           | 
           | However, during app (i.e. non-plugin) development I often
           | switch between linux and macos environments as part of my
           | workflow, and during testing after I've pushed to the proper
           | branch, the build server plops out the .exe/.pkg/.app/.tar.gz
           | bundles as needed for the test group to crack at it.
           | 
           | JUCE, being at heart a C++ framework intended to be the
           | engine of a very diverse swath of different OS, plugin, and
           | packaging standards, _does all the glue to get you there_ -
           | how you use it, is up to you. (All of this can happen in
           | github actions, btw, really easy to set up..)
           | 
           | Yes, there are 'business'/'productivity' UI elements in JUCE
           | app targets, and yes they are consistent across all
           | platforms. And yes, you can for example build a UI from an
           | .xml form, with cross-platform datastore and so on, easily
           | enough.
           | 
           | Here's a nice place to start, if you wanna understand JUCE
           | capabilities from a 'productivity'-app perspective:
           | 
           | https://www.youtube.com/watch?v=3IaMjH5lBEY
           | 
           | David Rowland, a core JUCE developer, explaining the guts of
           | things.
           | 
           | Basically, the scope is high performance applications, and
           | there are no really good reasons for why a high performance
           | application cannot also be a productivity app - the
           | distinction is arbitrary - except of course you ask, for the
           | GUI!
           | 
           | But: JUCE' GUI is pretty darn good, I have to say, in face of
           | the onslaught of platform vendor fuckery. You can embed a
           | WebView if you really need it, and wire it up to the rest of
           | the cross-platform event handing system, etc. But I think its
           | not really needed, given the plethora of 'normal' UI
           | controls, out of the box.
           | 
           | If you're serious about looking at JUCE for a variety of
           | application types, then a lot of the questions you're going
           | to have about JUCE' GUI suitability for standalone business
           | applications can be answered by running the _DemoRunner
           | application that 's built-in to the JUCE codebase_.
           | 
           | Clone the repo, build the DemoRunner project for your
           | platform (or all of them), and you'll see - there are plenty
           | of business-like cross-platform UI elements in the kitty. A
           | huge collection of business-/productivity- like UI elements,
           | right out of the box. (High-performance plugin UI's are there
           | with the business UI stuff, too.)
           | 
           | And .. once you've marvelled at the glory of
           | DemoRunner(.exe,.app,.apk)[etc.] .. please do yourself a
           | favour and spend an extra hour parsing the awesome-juce list:
           | 
           | https://github.com/sudara/awesome-juce/
           | 
           | JUCE is marvelous, and awesome-juce is awesome.
        
             | SyneRyder wrote:
             | You might have sold me on this, because on top of the
             | productivity-ish stuff I do, I'd really love to get into
             | VST development. If I hadn't fallen into Photoshop plugins
             | first, I would always have been an audio plugin dev. I
             | loved PSP VintageWarmer in the late 90s.
             | 
             | The UI in Rowland's demo at 32min is feeling a little
             | DearImGui / Reaper-ish, kinda bland while also being non-
             | native. But I've seen all the UIs that Arturia & everyone
             | else makes with JUCE, even what Valhalla does with it with
             | their NASA inspired interfaces, so it can clearly make
             | amazing stuff.
             | 
             | I can't believe we're now looking to PACE of all companies
             | to help indie devs. I hated iLok for so long even though I
             | have two iLok dongles now ;)
        
               | rigonkulous wrote:
               | Well, I hope you will take a serious look at it as a
               | technology stack worth learning, because when you get
               | things rigged up so that you can really just push your
               | changes into a repo and get the builds for all platforms,
               | its some kind of magic, and you will - most likely - be
               | really inspired to create something great.
               | 
               | Which, I hope, you do.
               | 
               | (PS; - the default UI skin is, imho, intentionally a tad
               | bland in order to promote developer uptake of JUCE'
               | pretty amazing skinning/UIBehaviour system...)
        
           | hermitcrab wrote:
           | Qt Small Business pricing is very reasonable.
        
             | SyneRyder wrote:
             | I think I prefer that JUCE is a one-off licence at $800
             | (for small business) and that they offer a 30% discount if
             | you want to upgrade when they release a new major framework
             | version. I'd rather not get locked into Qt's annual
             | $618/subscription every year just to continue distribution
             | & development.
             | 
             | But Qt has the bonus of also running on HaikuOS, and I've
             | definitely seen more business apps in Qt (pretty sure 010
             | Editor is Qt).
        
             | okanat wrote:
             | You can also use LGPL. You only need to disclose the
             | changes you made into Qt itself and allow changing it with
             | another DLL. That's it.
        
               | hermitcrab wrote:
               | Some modules, such as QtCharts, aren't available in the
               | LGPL version.
        
         | duped wrote:
         | JUCE has too many downsides to seriously recommend imo. "Just
         | write C++" is also doing heavy lifting, since JUCE is its own
         | bespoke flavor of C++.
        
         | InfiniteAscent wrote:
         | Use JUCE as much as you like, but please, stay away from those
         | 'out-of-the-box' horizontal sliders it seems to prioritize
         | (given how they swarm in the many VSTs made with JUCE).
         | 
         | If sliders are vertical in the real world, there's a reason for
         | it that Bruce "Tog" Tognazzini summarizes perfectly:
         | 
         | "Most of us [...] have our forarms mounted on a pivot we like
         | to call our elbow. That means that moving our hand describes an
         | arc, rather than a straight line. Demanding that pivoted people
         | move a mouse pointer along in a straight line horizontally is
         | just wrong."
         | 
         | Source:
         | https://www.asktog.com/columns/022DesignedToGiveFitts.html
        
           | rigonkulous wrote:
           | JUCE' GUI framework is extremely versatile - if that default
           | irks you, its a couple lines of code to get pretty much any
           | control to behave itself.
        
       | alkonaut wrote:
       | The roadmaps look messy if you look at them as coming from one
       | company. But if you remember that windows and .net (or DevDiv)
       | are more like competing companies then it makes more sense. Then
       | for one side it's Win32, MFC, WinSDk and for the other it's Win32
       | (WinForms), WPF, MAUI
       | 
       | If Microsoft hadn't been preoccupied with a failed mobile bet
       | then this wouldn't have happened. It's a lost decade followed by
       | a (much more successful) cloud pivot. The reason desktop is
       | ignored is because it can be. No one is eating their lunch on
       | desktop.
        
       | ZuLuuuuuu wrote:
       | 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.
        
         | adabyron wrote:
         | 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.
        
         | sdwr wrote:
         | Didn't Google give up on chromeOS? For all their faults, at
         | least Microsoft has a desktop os
        
           | cyberax wrote:
           | Not really. They are merging it with Android. Or in other
           | words, they're making Android into a full-blown desktop OS.
        
         | cogman10 wrote:
         | 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.
        
           | mghackerlady wrote:
           | 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 wrote:
             | 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 wrote:
             | 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.
        
           | starik36 wrote:
           | 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.
        
           | senko wrote:
           | GTK 2, GTK 3, or GTK 4?
        
             | cogman10 wrote:
             | 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.
        
           | electroly wrote:
           | 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.
        
         | sumtechguy wrote:
         | 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.
        
         | hbn wrote:
         | > 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
        
           | cyberax wrote:
           | Yeah, especially funny since they had the early lead with
           | their iPaq PDAs and Windows CE. Which they completely
           | squandered by ignoring them.
           | 
           | Then they acquired Nokia that already had an almost-ready
           | ecosystem of apps, with good snappy UI. And then spent two
           | years building a (shitty) framework on top of the long-
           | neglected Windows CE kernel. Which was known from the start
           | to be a stopgap solution before they port the full WinNT
           | kernel.
        
       | kwar13 wrote:
       | Reading this was such a trip. I remember "Programming Windows"
       | had to bribe my uncle to buy it for me. I built my first app
       | using it.
        
       | amai wrote:
       | To quote Steve Jobs: "The only problem with Microsoft is they
       | just have no taste. They have absolutely no taste. And I don't
       | mean that in a small way, I mean that in a big way, in the sense
       | that they don't think of original ideas, and they don't bring
       | much culture into their products. "
        
       | amai wrote:
       | I would recommend Flutter, if Google would not have abandoned it.
       | 12000 open issues on GitHub speak for themselves.
        
       | Zigurd wrote:
       | Not just Windows. If you use an Android smart phone (and it might
       | be just as bad on iPhone I just don't know) you see AI features
       | occupying the last scraps of user interface real estate in the
       | form of edge gestures that half the time get me an unwanted AI
       | overlay UI when I was looking for the app switcher. Steve Jobs is
       | spinning in his grave, and the people who authored the original
       | Mac UI guidelines are cringing. Nobody seems to be willing to say
       | that there's no room at the inn, or that somebody's idea has to
       | get evicted before a new idea can occupy space.
        
       | sirjaz wrote:
       | The biggest issue in my opinion is that Microsoft is chasing web
       | devs. XAML is pita, just like css and html markup. They need to
       | pick a lane and just use it. Allow other frameworks access to the
       | default low level api such as Win32, but document it to the same
       | level as Google does on Android and Apple with SwiftUI
        
         | mghackerlady wrote:
         | I actually like the idea of GUIs being represented in a markup
         | (whether that be XML, QML, GNOMEs new Blueprint (which is kinda
         | a markup language I think?) but I also thought display
         | postscript was elegant so maybe I'm backing the wrong horse
        
         | hnthrowaway0315 wrote:
         | I think the whole world sails on that ship and MSFT just wants
         | to catch up. Their most darling developer tools since 10 years
         | ago are mostly by web and for web: Typescript, VSCode.
        
       | chrisjj wrote:
       | Has anyone tried turning Microsoft off and on again?
        
       | 2OEH8eoCRo0 wrote:
       | They have a strategy of adding as many dumb slow abstractions as
       | possible so the multi trillion dollar company can minimize the
       | devs on their payroll.
        
       | geekraver wrote:
       | 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 wrote:
         | 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...
        
       | dangus wrote:
       | IDK, it kind of sounds like from the article's own prose that
       | Project Reunion / WinUI 3 is an overall good thing and that
       | Microsoft actually _does_ have a pretty good vision for the past
       | 5 years at least.
       | 
       | From a user's perspective, I don't really see where the problem
       | is. All my apps look like Windows apps to me, and I also think
       | that includes apps that do their own thing and look their own
       | way. For as long as Windows has been around we've had apps that
       | just don't follow the rules, from RealPlayer to WinZip to iTunes
       | to Spotify.
       | 
       | This idea that all applications must be consistent with each
       | other on one platform is generally a good idea but the downside
       | of not having it that way is not very tangible to most users.
       | 
       | E.g., Steam looks different than every other Windows app. Same
       | with Spotify and Slack and Discord. How does that negatively
       | impact users? Well, not really at all. The consistency is within
       | those apps themselves. I'm comfortable with Steam because I've
       | been using it for 20 years and it's evolved on its own terms.
       | 
       | I could see it being an accessibility problem, but can't figure
       | out any other potential downside.
       | 
       | I also don't think any other platforms have this figured out. See
       | the window corners in macOS Tahoe. Remember how Mac Catalyst apps
       | first looked when that came out? They didn't follow OS
       | conventions at all. Remember when Final Cut Pro 6 didn't look
       | anything like a Mac app? Or GarageBand etc. and their
       | skeuomorphic looks? Linux is no better with a mix of desktop
       | environments, Wayland versus Xorg, etc. Then we look at mobile
       | apps and it's one of the least consistent environments
       | imaginable: you've got a mix of native and frameworks like React
       | Native and Flutter and the rest.
        
       | bvan wrote:
       | WPF marked the end of well thought-out UI's and standards. It's
       | been web-inspired slop ever since.
        
       | VirgilShelton wrote:
       | 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.
        
       | hluska wrote:
       | Oh hey look, another chance for HN to dunk on Microsoft. I'm sure
       | there will be some fresh new perspecti...oh darn, it's just a
       | rehash of the exact same snark the last time HN had a chance to
       | dunk on Microsoft.
       | 
       | I'm not sure what Microsoft can possibly do when the closest
       | thing to a collection of power users is this painfully
       | repetitive.
        
       | ghelmer wrote:
       | > I sat through a conference session in the late nineties trying
       | to understand the difference between an OLE document, a COM
       | object, and an ActiveX control.
       | 
       | I wonder if we attended the same conference session!
        
       | dejongh wrote:
       | Fun and sad. Garbage collected languages like .NET, Java, and Go
       | are slow compared DIY languages like C, Rust, and Swift. So, no
       | wonder the Windows team dislike them. However, it seems the
       | Windows team had to live with a React start menu for quite some
       | time. How does that fit into the over all battle between the
       | teams and UI frameworks?
        
         | d-us-vb wrote:
         | That wasn't the issue. The problem was that most of Windows
         | system utilities are not managed, but the WPF move was trying
         | to make a patchwork quilt of managed vs. unmanaged utilities,
         | making the entire system very difficult to reason about and
         | introducing regressions constantly. From the Windows Team's
         | perspective, the .NET people just made a mess out of everything
         | they touched.
         | 
         | Perhaps if WPF really did stay at the presentation level, or
         | used VMs or something to keep it away from the Windows core, it
         | would have panned out better. But is it goes with "paradigm
         | shifts", when a company thinks it has a great idea, it wants to
         | suddenly do that great idea everywhere.
        
       | moochamerth wrote:
       | A couple of years ago I played a bit with Go and Win32.
       | 
       | I got to the point that I could create windows and controls, and
       | had a basic message loop working.
       | 
       | I then started dabbling in painting in non-client areas. It was
       | buggy and didn't work well (my fault), but then I could see 2-3
       | different Windows UI styles competing to draw the window chrome.
       | 
       | The amount of crumbs hidden under the Windows carpet is
       | incredible.
        
       | damnitbuilds wrote:
       | Good tech solutions need ONE champion.
       | 
       | Jobs, Musk, Edison, whoever.
       | 
       | Someone who will enforce their design decisions, get stuff done.
       | And take the hit when they are wrong.
        
       | petermcneeley wrote:
       | Talk about UI without pictures!
        
       | iask wrote:
       | I stuck with WinForms and complemented it with DevExpress since
       | their first release and never looked back.
       | 
       | I still think WinForms is one of their best UI framework. As for
       | WPF, intentionally avoided it since day one. I'm not fiddling
       | with no XAML.
        
       | anarticle wrote:
       | Programming Windows is THE authoritative source on Win32
       | programming: https://www.charlespetzold.com/books.html
       | 
       | It is a fantastic book, I learned everything I know on Win32 from
       | it. Wrote real time scientific software in windows for ~10y! We
       | did it all, external hardware control, custom UIs, etc. Thanks
       | Ryan Geiss for your timing info.
       | 
       | Right about VC6 was the sweet spot imo, C/C++ with lightning fast
       | UI for docs and more. Tools got out of the way. Once other
       | languages got involved (C#?) the docs got out of control and
       | harder to use, and the UI started to get a little overloaded.
       | 
       | The snappiness of those old windows systems was pretty great.
        
       | gwf wrote:
       | An honest accounting of this history has to call out Sinofsky's
       | role, and it's not pretty. He nearly killed the company in
       | pursuit of power, insisting that everything be brought under his
       | control. Who pushed in 2005 that online and search _had_ to be
       | organized under Windows? That was Sinofsky. He forced the
       | engineering team that most needed to move fast onto three-year
       | product cycles--sheer insanity, and just one of a 1000 bad calls
       | that ultimately contributed to his ouster from Microsoft. And
       | when it came time to plan his own exit from Microsoft, who did
       | Sinofsky turn to? Jeffrey Epstein, of course, because that 's
       | what normal people do. Treat everything Sinofsky writes as an
       | attempt to launder his reputation--then add another layer of
       | skepticism on top of that--because Steven Sinofsky does not live
       | in the same moral universe as the people whose careers and
       | products he derailed.
        
       ___________________________________________________________________
       (page generated 2026-04-06 23:01 UTC)