Why is it a cluster fuck? When it's been virtually unchanged and stable for the past 30 or so years, which is how Winamp 2.95 can run on WIndows 11 today and how Wine can so easily run Windows games. Way better than Linux and Mac have historically provided for compatibility.
I still think that it’s one of the great ironies of our time.
Linux itself bends over backwards to avoid breaking userland, to the point where there is a substantial amount of cruft when interacting directly with the kernel.
Only for GNU to say “fuck that” and create a widely mockable situation, one of the worst targets of modern programs for stability… to the point where people start using alternative libc’s specifically to statically link them.
Just a quirk of the times. GNU made the most optimal solutions of their time, but in the end we still have some tech debt. I think it was inevitable that this would happen with GNU or for that matter any project, since it's not a centralized project like linux and was never going to be since it's not just one piece of software.
Not all parts of Win32 were designed equally well. File IO, process management and most of the threading primitivs have aged really well. Thread management hasn't. The GUI parts are a sometimes hacky mess because behavioral changes created mismatches between what functions were specified to do and what that gets actually translated to. Permissions are a pain in the butt with complex ACLs, transparent file access redirects and how process elevation works.
Yes, for sure. And with hindsight a lot of things would be done differently. I’m still really impressed by most of win32 given it was designed at a time where the software and hardware landscape looked so different from what we have today. Looks complex and messy at first but I learned a ton about what makes for good design by digging into win32 and NT