Live data from Hacker News

Windows native app development is a mess

domenic.me

391–400 of 481 posts

Re: Windows native app development is a mess

#391

Earlier quoted context omitted.

Using Win32 to write a UI in Windows is like pulling teeth. There are bindings for Rust but even still it's a nightmare. MacOS is slightly better but Apple's anti-competitive practices targeting developers makes it a tough sell. Linux is better still, technically, but due to the fragmented desktop environment landscape and distribution difficulties, it's also a hard sell. I think it's fair to say that the entire stor…

The sane alternative is macOS because there is one thing that Windows lacks; a community. Since 1984, there have been boutique developers who have spent their whole career working on macOS, making it better and living the dream of working on consumer software. When I look at the apps on Windows, all I see are abandoned projects and MVPs with a borderline malware financial structure.

"Developers, Developers, Developers!" - Steve Balmer

Microsoft has always had vastly more developers and development of software for Windows.

Apple still after all these years has a tiny market share of overall platforms, software, all of it really.

Not sure how you can suggest Apple is somehow the bastion of software development. If you write mac software, you'll be targeting a platform with 15-20% market share at best.

Re: Windows native app development is a mess

#392

Earlier quoted context omitted.

How do you make your win32 app look good to the average person?

Depends what you mean by "look good". The main function of the app being discussed here is to draw solid black rectangles on the screen. Don't forget the "average person", I'm assuming someone relying on software as a tool, doesn't care about the stuff "designers" seem to obsess over, and will actively hate if you break their workflow by doing things like adding useless padding that makes them scroll more or shows le…

Oh, how I hate when vendors bring "modern web" aesthetics to desktop utility programs. For example, Docker Desktop could go a long way in terms of usability if it just sticked to Win32 common controls - the kind of buttons, labels and list views that have been around since Windows 95. Maybe I wouldn't even have to wait 10 seconds for the main window to show up every time.

Re: Windows native app development is a mess

#393

Earlier quoted context omitted.

There's a pretty simple settings window: https://github.com/domenic/display-blackout?tab=readme-ov-fi... Would that UI be hard to accomplish?

You mean conceptually or to match it? Native components are pretty much impossible to match without actually using the native framework which provides them, so you need WinUI/WPF. Win32 provides its own components which are basically Win95 style apps, and you can draw the components using some graphics APIs by yourself. The whole native development area is a mess exactly because making your own (decent) renderer is a…

Agreed. The Qt framework, which is a cross-platform UI framework, does a decent job mimicking the native Win32 looks. Inside, the code is a giant mess. But on the outside, the API is very well thought out and easy to use.

Re: Windows native app development is a mess

#394

Earlier quoted context omitted.

Just wanted to add a shoutout to WinJS for posterity, with which I built a Windows 8 app that I had published to the Windows Store for a brief period of time. Then they open-sourced the UI part of WinJS and decided it was just a web framework instead of an officially supported method for building Windows apps iirc, which was the end of my foray into the Windows store. https://github.com/winjs/winjs

> for posterity Anyone remember this one? Microsoft Press: Learn Java Now (complete with J++ installation CD). https://www.amazon.com/dp/1572314281

Of course, the reason for the lawsuit, and redoing Ext-VOS ideas with Cool instead of J++, later renamed to C#.

Ironically, Microsoft nowadays not only has their OpenJDK based distro, they even host Java conferences.

Re: Windows native app development is a mess

#395
post #263
post #58

Earlier quoted context omitted.

Honestly, your GUIs are too simple to be part of this conversation. Try writing something like Spotify in WinAPI and that's not even a complicated GUI either.

WinAmp was the win32 music player of choice, once upon a time.

Once upon a time? I still use WinAmp every single day. It works great, does what I need, and I've never had a problem with it.

Re: Windows native app development is a mess

#396
post #280

Earlier quoted context omitted.

Yeah, Win32 (Windows API) will be around for a long time one way or the other, and there is a ton of tooling and docs around it. Even for non-Windows usage it is to be considered in certain situations. > Don't be swayed by the propaganda. Especially if your application has essentially no untrusted input. Even without untrusted inputs, in 2026 one should think twice before selecting C++ for a new project. There are st…

I just had a look at two examples from that windows-rs repo. https://crates.io/crates/windows-sys https://crates.io/crates/windows Both seem to do the actual work in unsafe blocks, so I guess you could as well use C++, no? (only have limited Rust knowledge)

It's straightforward to contain the unsafe usage and potentially write safe wrappers and structures around it. Memory bugs mostly stem from the larger application in conjunction with the API anyway, rarely only the API layer.

Re: Windows native app development is a mess

#397

I agree with all the comments here saying "stick with Win32" --- this is "a mess" that you can easily avoid. Speaking as a long-time Win32 programmer, the requirements for your app are doable in a few KB (yes, kilobytes --- my vague estimate is less than 8KB) standalone executable. This is how I arrived at that: Enumerating the machine’s displays and their bounds A few API calls. Probably a few hundred bytes. Placing…

Using Win32 to write a UI in Windows is like pulling teeth. There are bindings for Rust but even still it's a nightmare. MacOS is slightly better but Apple's anti-competitive practices targeting developers makes it a tough sell. Linux is better still, technically, but due to the fragmented desktop environment landscape and distribution difficulties, it's also a hard sell. I think it's fair to say that the entire stor…

It’s certainly doable, but not as nice and easy as Delphi or Qt, which are WYSIWYG.

Of course, if one is a web developer, even attempting such a feat this could result in a brain-melting experience.

Re: Windows native app development is a mess

#398

Earlier quoted context omitted.

I still think that WPF was the peak desktop UI framework. Extremely powerful with lots of small composable primitives, can easily do declarative but drop into more traditional event-driven imperative style where it makes sense.

I live in a bizarro universe where I started my career working on an expansive WPF desktop app on .NET Framework 4.0, and am still working on it now on .NET 10. From my perspective it's been WPF the entire time, and it's been pretty okay.

Similarly, I've been doing It development for pretty much the entirety of my career. When I see the struggles to make remotely useable apps in other frameworks I'm very happy I chose this path

Re: Windows native app development is a mess

#399
post #280

I agree with all the comments here saying "stick with Win32" --- this is "a mess" that you can easily avoid. Speaking as a long-time Win32 programmer, the requirements for your app are doable in a few KB (yes, kilobytes --- my vague estimate is less than 8KB) standalone executable. This is how I arrived at that: Enumerating the machine’s displays and their bounds A few API calls. Probably a few hundred bytes. Placing…

Yeah, Win32 (Windows API) will be around for a long time one way or the other, and there is a ton of tooling and docs around it. Even for non-Windows usage it is to be considered in certain situations. > Don't be swayed by the propaganda. Especially if your application has essentially no untrusted input. Even without untrusted inputs, in 2026 one should think twice before selecting C++ for a new project. There are st…

> Even without untrusted inputs, in 2026 one should think twice before selecting C++ for a new project.

Yes, you may be harmed by proper IDE and debugging experience via Visual Studio.

Re: Windows native app development is a mess

#400

The author is right, it's really such a mess. The lessons I've learnt building and shipping a few a Windows apps at scale are basically: (1) Learn Win32 and use those ancient APIs if possible, they're extraordinarily stable and you'll probably need to reach for them anyway. They're not that scary. (2) Don't use any Microsoft-owned UI toolkit, you'll get burnt. Literally anything is better. Ideally choose a toolkit th…

With WinUI 3 I did not even manage to render PNGs correctly.

The colors were always slightly off and oversaturated, no matter what setting I used.

I migrated the app to Tauri and the PNGs of course rendered perfectly. The implementation was much easier overall.

Post reply on HN