Live data from Hacker News

Windows native app development is a mess

domenic.me

241–250 of 481 posts

Re: Windows native app development is a mess

#241
post #234

Let me chime in and say that plain Win32 API is a perfectly viable option if you are using C++ (or another "OO" language) and if you are willing to sink a couple of weeks into writing your own MFC-like wrapper. Clearly this is not an option for those who are just starting up with Windows GUI work, but with little experience it is really a matter of 2-3 weeks of ground work and then you have full control over all nuan…

The last time I built a native Windows app years ago, I used WTL 3.0. It’s a light weight wrapper on the native Win32 API, lighter than MFC. It took out the unpleasantness of working directly on Win32 API and wrapped it in a simple OO framework. It had access to all features of Win32. It could produce runtime binary in dozens of K, instead of MB or GB. Microsoft released it open source later on. Looking at the reposi…

GitHub mirror of the sourceforge repo: https://github.com/Win32-WTL/WTL

WTL delivers very small and efficient code, very close in size and speed to SDK programs, while presenting a more logical, object oriented model to a programmer.

Re: Windows native app development is a mess

#242
post #218

Earlier quoted context omitted.

Having to use macros for literal strings in your code is just incredibly stupid of Microsoft and/or C++.

How do Linux and Java do it, when you want to compile your program in both 16-bit char and 8-bit char mode? Oh that's right, you don't. You can pick one or the otherfor Windows too, so don't ask me why it's done that way. It was originally so you could compile for both the new hotness Unicode, and the old compatible ASCII.

Partly because Microsoft resisted UTF-8 forever, and so using the ANSI/multibyte strings didn't therefore give you modern functionality. Why they didn't implement Unicode for Win95, I'm just not sure. If they had, the only reason to compile an ANSI version would have been to target Win32S (Windows 3.11).

Or, they could have implemented a UTF-8 code page for Win32 as soon as it was available and then most software could just use byte strings.

Re: Windows native app development is a mess

#243

> But, in 2026, writing a greenfield application in a memory-unsafe language like C++ is a crime. I disagree, the GUI layer is far from behind a safety critical component, and C++ is a battle-tested choice for everything from GUI, videos games, to industrial applications. If C++ is safe enough to control airplanes and nuclear reactors when used well, it is certainly safe enough for something as trivial a GUI. The art…

Why would the article mention Qt? Qt is native for a subset of Linux distributions, not Windows.

Even Microsoft shipped Qt apps as part of Windows though, for instance onedrive

Re: Windows native app development is a mess

#244
post #101

Earlier quoted context omitted.

That sounds like the same ugly hack that caused programs not to be “32 bit clean” back in the day for Macs

Ah yes, these 68000 pointers have a spare 8 bits for me to use! Because nothing will ever need more than 16 MB of memory. Sigh.

It's all good if you have 128kb ram but they should have had a plan to escape it from day one.

Re: Windows native app development is a mess

#246

Earlier quoted context omitted.

No one suggesting using Windows Update to install new apps, they are suggesting the current .Net framework should be elevated to a first class Windows citizen and included with Windows installs and updated with Windows Update, and that seems like and obvious idea that should have been implemented when .Net Core became .Net.

.NET versions are not fully backwards compatible. Would you like every Windows install to ship with over ten versions of the .NET runtime?

Yes?

Re: Windows native app development is a mess

#247

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…

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

If your application saves me time (is intuitive) or enables me to do tasks that I couldn't do before (is powerful) then I don't care one whit what it looks like. As long as it doesn't actively hurt my eyes to stare at you can do whatever you want.

Re: Windows native app development is a mess

#248

> But, in 2026, writing a greenfield application in a memory-unsafe language like C++ is a crime. I disagree, the GUI layer is far from behind a safety critical component, and C++ is a battle-tested choice for everything from GUI, videos games, to industrial applications. If C++ is safe enough to control airplanes and nuclear reactors when used well, it is certainly safe enough for something as trivial a GUI. The art…

Why would the article mention Qt? Qt is native for a subset of Linux distributions, not Windows.

Qt for Windows compiles to a win32 or win64 .exe. That is native in my book.

Re: Windows native app development is a mess

#249

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…

> "(2) Don't use any Microsoft-owned UI toolkit, you'll get burnt" This is 100% true for all of their techs produced within the past ~20 years, but WPF and Winforms are extremely stable with no real issues. It's so weird too because most of everything they've done in the past 20 years has basically just been incomplete remixes of WPF. If they just stuck with WPF and extended it onward, something like a UI toolkit equ…

When they announced UWP I was just starting a new side project and I thought, let's check it out. I was hoping it would basically bring WPF into first class citizen territory. Instead, they made them needlessly incompatible. Like writing for both NeXT and MacOS, but on the same platform. I got discouraged right away and have really never done any significant Windows work since, which turned out to be a great move for my sanity.

Re: Windows native app development is a mess

#250

> But, in 2026, writing a greenfield application in a memory-unsafe language like C++ is a crime. I disagree, the GUI layer is far from behind a safety critical component, and C++ is a battle-tested choice for everything from GUI, videos games, to industrial applications. If C++ is safe enough to control airplanes and nuclear reactors when used well, it is certainly safe enough for something as trivial a GUI. The art…

Why would the article mention Qt? Qt is native for a subset of Linux distributions, not Windows.

Qt is arguably the best cross platform toolkit to target when writing big/complex apps
Post reply on HN