Part of my day job is maintaining and expanding a Win32 / MFC / C++ / C app I originally wrote over 25 years ago. It works well, a couple thousand people use it every day and say nice things, and it’s backwards compatible to XP, which some of our clients still have.

This week, I started exploring a re-write, using modern Windows languages and frameworks, with the idea than surely — surely — things have become significantly less complex in the last couple of decades.

Oh.

Oh, no.

Oh, God, no.

@gknauss
come on, it's the oldest law in software: software is a gas; its complexity expands to eat all brains. Or something like that.
@gknauss @codinghorror c# .NET and WinForms is a pretty solid and great improvement to MFC and C++. But it’s old and not the current way to do things, so the tech debt benefit would be lessened. But the maintainability would likely be far easier
@gknauss
Wait, wait. You're saying .NET/C# didn't fix the complexity issue? /s
@gknauss my first exclusively coding job ~30y ago had me doing UI work in Delphi where I called the DLLs full of business logic for our time card product. At the time it felt overly complex to do this two tier thing. I look back on it now and it feels quaint and simple compared to implementing modern apps that are glorified JSON display systems. How did so much of this get WORSE?

@gknauss I love MFC and the Win32 API.

I actually don't think there was much wrong with them (certainty certainly not anything a casual programmer such as myself could see anyway).

Fast, well documented and capable of anything I ever really wanted of them.

@gknauss About every two years, I think: “I’ll take a look at the latest Windows desktop app development situation. It MUST have regained some sanity by now.”

I’m…still looking.

I have very fond memories of the old VB6 days. Limited, yes. But it was so much easier to get started, and the programming model made sense.

It seems that app development complexity has grown unimpeded while overall app quality has gotten worse. It’s disappointing, because it doesn’t have to be that way.

@davidwholland
It's because computing resources aren't much of a limiting factor anymore. It's kinda ironic that you didn't need stackoverflow.com to sort out complex problems when you actually had to worry about overflowing the stack!
@gknauss
@gknauss This is exactly why WinForms is never going to die. Simplicity and rapid development.
@gknauss This brings back some memories!
@gknauss it doesn't help that Microsoft defined MVVM as a pattern for new frameworks but the correct way of actually implementing it is frustratingly scattered over 10,000 fragmented bits that you have to find when you run into a problem. That's what happens when you dump technical writing because "the devs can do it" ...
@gknauss I guess the only fully native alternative is QT C++.

@gknauss

I'm curious... some of your clients are using Windows XP, nearly 10 years after its EOL?

Outside of an industrial system or highly closed system (like the NY Subway's use of OS/2 Warp, or a cash register), what is their reason for using such an old system?

@emacsen Small or single-practitioner law firms, mostly, especially with older users. No IT support and “It works, so why should I change?” A lot of lawyers are still using WordPerfect.

It is a vanishingly small percentage, but it does happen. We still have Vista and 7 users, too.

But I also admit to a stubborn pride in just keeping the damned thing compatible.

@gknauss

Ah. That makes sense, though I'm always scared that law firms are running on these old systems that have no security patches, etc.

In some ways, I genuinely wonder if an online service model wouldn't be a better choice for them.

Indeed. I know of the Wordperfect situation and law firms. I'm old enough to have used WordStar.

1/

@gknauss

I've long thought that for folks in your situation, if there wouldn't be some utility in something like WINE for Windows. It does exist:

https://liliputing.com/wine-on-windows-lets-you-run-windows-apps-on-windows-through-windows-subsystem-for-linux/ but it's really for modern Windows systems.

Part of me really thinks that for clients like this, they should be on ReactOS :)

https://reactos.org

2/2

Wine on Windows lets you run Windows apps... on Windows (through Windows Subsystem for Linux) - Liliputing

Wine on Windows lets you run Windows apps... on Windows (through Windows Subsystem for Linux)

Liliputing