Live data from Hacker News

Windows native app development is a mess

domenic.me

381–390 of 481 posts

Re: Windows native app development is a mess

#381

Earlier quoted context omitted.

You talk like that is a bad thing. Win32 UI works, is fast, works everywhere even on ancient 640x480 server screens, safe mode and vnc in 16 colors without opengl, directx, Angle or vulkan. Flutter is nicer to scale and maybe design but it is a massive overhead. Skia still has trouble with some drivers and causes lag or falls back to software rasterization. Hot replacement while coding is pretty neat though. It runs…

It works, and fast, but it is not portable. I would argue something like Qt is much more viable in $current_year for cross-platform development. Or if you're really dead-set on actual native components, then I guess wxWidgets works too.

I'd rather tell Linux and Mac users to use WINE.

Re: Windows native app development is a mess

#382

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.

> 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.

Microsoft has had even more people working on Windows software..

Re: Windows native app development is a mess

#383
post #11

I'm an embedded programmer who occassionally needs to write various windows programs to interface with embedded devices (usually via serial port or usb), and I find it a breeze to write native gui programs in pure win32 and c++. Recently had to add a new feature to and old program that was last updated in the XP era and two things to note: 1. The program did not need to be updated to run on Vista, 7, 10 and 11, shit…

I feel like I'm the only person in the world who would rather write ugly win32 jank for the rest of my days than ever having to touch an "elegant" or "well structured" Cocoa codebase. In win32 if you want a button you call a function and pass a hande, in the Apple world you first subclass 7 interfaces in some unreadable Smalltalk-wannabe syntax and pray you don't need to access the documentation. And of course they c…

This is total misinformation.

Re: Windows native app development is a mess

#384

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…

Linux as such has no UI - which framework specifically were you thinking of?

Re: Windows native app development is a mess

#385

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.

To be fair, these exist on Windows as well. There's some cool stuff, MyLifeOrganized for example I would consider to be on par with OmniFocus.

But I agree that most of the boutique stuff on Windows gets drowned in all the enterprise software a bit.

Re: Windows native app development is a mess

#386

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…

Win32 is easy: https://news.ycombinator.com/item?id=21459616 MacOS is not quite so simple: https://news.ycombinator.com/item?id=40085237

Comparing oranges to apples. Win32/Win API is (one of) the native API to do Windows programming.

Pure C is not the native way to do application programming on macOS. As I mentioned elsewhere, you can bring up a window with a button with no code on macOS. You can make that button show a string on a label with a handful lines of code.

Re: Windows native app development is a mess

#387

Earlier quoted context omitted.

To decide what tools are the right job for each project, same expectation as always. So many “let’s race-to-the-bottom along with the authority” comments on HN lately. Dude: no! =]

I think more so I’m saying that the platform (metaphorical ship) is sinking. Majority of applications on Linux are native applications. Maybe the problem is the platform?

Yeah exactly, on Linux I mostly use Qt apps and they're great. Even Telegram is native. The only one that I use that isn't is Obsidian. But all these notetaking apps are electron (and markdown) somehow.

Re: Windows native app development is a mess

#388
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…

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)

Re: Windows native app development is a mess

#389
Microsoft approach is similar to the C++ approach where new way or feature won’t cut the older feature/way of doing things. I’ve heard Bjarne Stroustrup once in a lecture explaining the value of this approach as the language is used in so many fields and that it’s important for all code to compile allowing gradual migration.

In some ways, Microsoft is similar to that.

Apple on the other hand is fast paced so API can suddenly be deprecated and slashed and with Swift they’ve also made a language that is being changed from time to time in a breaking way.

While Microsoft’s approach similar to C++ it is a private company with no committee. This allows fast pace for ideas needed by a company in a competitive market. But, with ensuring backward compatibility, it makes each not throughly thought design -stick.

I guess Win32 is an exception since the first GUI concepts, our desktop designs hasn't changed that much. Window, Menu, Toolbar. Back then, The competition and pace was less intense allowing more time to think. There were other constraints of course being applied by the hardware and stack available back then requiring more abstract designs.

In that sense, it’s quite interesting to see Win32 is kept while Apple’s switch to NS/OSX made everyone eventually transition into Cocoa.

Post reply on HN