Live data from Hacker News

Windows native app development is a mess

domenic.me

431–440 of 481 posts

Re: Windows native app development is a mess

#431

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…

This is the way. Everything is fine if you are a responsible dev that writes secure code. You can very clearly see the pattern of shitty framework after shitty framework coming and going. Why bother when the C++ code will outlive whatever shitty framework is coming next?

Re: Windows native app development is a mess

#432

Earlier quoted context omitted.

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.

MyLifeOrganized was the biggest thing I gave up when I switched to Mac in 2013. Still miss it -- nothing else (Omnifocus, Things, outliners, etc) has been as effective as a system for me. They've been talking about a potential Mac app for year, I'm on the waiting list, but I've given up hope that it'll ever come. Even if it does, I doubt it'll be as good as it is on Windows.

Re: Windows native app development is a mess

#433
post #215

Earlier quoted context omitted.

Why wouldn't you program a GUI with a GUI if one is available? Avoiding the use of WYSIWYG editors when making GUIs is like avoiding the use of musical instruments when writing songs.

> Avoiding the use of WYSIWYG editors when making GUIs is like avoiding the use of musical instruments when writing songs. And yet, most songwriters write the song, they don't record themselves playing notes.

I encourage you to listen to the Song Exploder podcast to learn about how songwriters write songs.

Re: Windows native app development is a mess

#434

Earlier quoted context omitted.

"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 b…

Isn't software development about making money? On phones, if you want to make money you have to target iOS, since this is where you have the people with money to spend on software. Do you believe that the vastly larger installed base of Windows guarantees more money for everyone?

At a previous workplace, we released certain software targeted at media/videography professionals for macOS first. The immediate response at conferences was, 'do you have a Windows version? We all use Windows.' Once we ported our software to Windows, the uptake was easily 1.5 orders of magnitude greater than for macOS.

The era of 'macOS is a better media computer' is long gone.

Re: Windows native app development is a mess

#435

Earlier quoted context omitted.

I feel like WinForms was peak (because it was close to Delphi) and it went downhill from there.

IMO WinForms didn't manage to reach even Delphi 2's state, so i'd say it is far from peak considering the improvements later Delphis (and now Lazarus) added. It was abandoned too soon.

I meant peak for MS.

> It was abandoned too soon.

This is probably a recurring theme for MS UI frameworks.

Re: Windows native app development is a mess

#436

Earlier quoted context omitted.

>.NET 10 will be gone in 2. To be fair it's been super simple to upgrade .NET versions the last few versions especially.

Then why are they separate versions? I've got like five modernish .NET runtimes installed on my machine, half are unsupported, and there's no way to identify which ones are still needed. Meanwhile 4.8.1 is built int Windows and supports apps written over like the past fifteen years. Why wouldn't anyone just use that? I'm sure modern .NET has some nice things but the release model is not one of them.

Compared to Framework 4.8, modern .NET has a LOT more stuff in it, every year it gets more stuff and its essentially on version 9 now (they skipped .NET 4).

I stick to the LTS versions which are the even numbers and they are supported for 3 years each. after 2 years in, the next LTS is out and all I typically have to do is bump up .NET target number in the project and I haven't really had a problem. There were more changes back in the .NET Core 3 and .NET5/6 days, but that was like 5+ years ago now.

Also, you can build your apps with the framework included in a single executable even, and so anyone can use your app without having the framework installed at all if you are worried about whether the framework version is installed on their system or not.

Also if you wait the 3 years to upgrade the .NET version, then I doubt you would ever have a problem where the target system didn't already have the new LTS version after it will have been out for a year at that point.

If you really don't care at all about cross platform support which .NET offers really well now, then you could keep using Framework 4.8, but after nearly 10 versions of .NET the improvements to the C# language and runtime and everything are hard to ignore. Though I think there is some way with some package you can use the new C# language features with Framework 4.8.

Re: Windows native app development is a mess

#437

Earlier quoted context omitted.

Then why are they separate versions? I've got like five modernish .NET runtimes installed on my machine, half are unsupported, and there's no way to identify which ones are still needed. Meanwhile 4.8.1 is built int Windows and supports apps written over like the past fifteen years. Why wouldn't anyone just use that? I'm sure modern .NET has some nice things but the release model is not one of them.

Compared to Framework 4.8, modern .NET has a LOT more stuff in it, every year it gets more stuff and its essentially on version 9 now (they skipped .NET 4). I stick to the LTS versions which are the even numbers and they are supported for 3 years each. after 2 years in, the next LTS is out and all I typically have to do is bump up .NET target number in the project and I haven't really had a problem. There were more c…

I mean, if Microsoft cared about cross-platform support, I would too. But they don't have an officially supported GUI framework for Linux. I understand there are new things in the new .NET, but the story for upgrading to it and supporting it still isn't worth it.

When Windows builds in a modern .NET, I will use it! Bear in mind all of this above churn, while they claim is the new way things work, is inherently temporary: The reason .NET 4.8 is so well supported is Windows is built on it. So if Microsoft ever wants to use those newer things in Windows... Windows will have to build-in modern .NET features someday.

Re: Windows native app development is a mess

#438
post #215

Earlier quoted context omitted.

Programming with GUIs?

Why wouldn't you program a GUI with a GUI if one is available? Avoiding the use of WYSIWYG editors when making GUIs is like avoiding the use of musical instruments when writing songs.

In my experience drag-and-drop GUI editors work great until you add the constraint that the window has to be resizeable. Then it becomes a mess of clicking through dialogs for every UI element to make sure the anchoring and display flow is set up correctly, and you often have to go back and redo this whenever you add a new element or change the layout of the form. I think the best GUI programming experience I've ever had is on Palm OS simply because it had the constraint that every program always displayed in fullscreen at 160x160 (pixel-doubled to 320x320 on later devices) so you never had to deal with resizeable windows.

Re: Windows native app development is a mess

#439
post #409
post #251

Earlier quoted context omitted.

For non-Windows devs (from ChatGPT): - Win32: The original Windows API (since the 90s). Still widely used. - MFC: Old C++ wrapper around Win32. Ancient, but still maintained. - WPF: .NET desktop UI framework (XAML-based). Still very relevant. - WinForms: Simpler .NET UI toolkit. Old but stable. - WinRT: A newer API layer meant to replace parts of Win32. - UWP: Microsoft’s attempt at unified apps (desktop + tablet + p…

Huh? Downvotes for providing explanations of the acronyms/tech...?

I didn't vote but I'll bite the bullet.

1. Do not relay LLM output. If someone wanted, they would use it, ChatGPT is free. Post your own, human, meaty thoughts.

2. The blog post explains all these technologies, one just need to read it further than the title. It might be a big ask here on HN, I know, but still.

Re: Windows native app development is a mess

#440

It’s been a long time since I had to touch Windows development. If I had to do it over again, I would use React Native for Windows UI where possible and low-level Win32-React Native module bridges for user space code. The last time I had to do Windows development was about 15 years ago. I used a library called WTL (I think a couple comments here mention it). I couldn’t use any of the newer stuff that Windows 8-10 wer…

You should run away from React Native Desktop screaming. It's built on top of WinUI 3, and inherits all it's problems, while also being dramatically slower. Almost all functionality requires writing C++ code, and communicating between C++ and JS is a huge pain in the ass. Use QT instead. And if you think using it will let you port your app to other platforms, think again. There's no drop-in compatible equivalent of R…

Thanks for the heads up! In all fairness, I'd probably run away from writing any more desktop apps!
Post reply on HN