Live data from Hacker News

Windows API is Successful Cross-Platform API (2024)

retrocoding.net

111–120 of 147 posts

Re: Windows API is Successful Cross-Platform API (2024)

#111
post #66

Earlier quoted context omitted.

That reasoning fails flat given the same studios have no issues supporting iOS, PlayStation, Swift and XBox, which are completely alien to what is used on Android NDK, APIs that are GNU/Linux compatible for 3D rendering, audio and asset loading. Valve basically failed to provide the business value for those studios.

> given the same studios have no issues supporting iOS, PlayStation, Swift and XBox PlayStation and Xbox don't go and cause you constant churn, at least not in the same console generation, and maintenance churn on iOS is only bearable for app developers because there are so many people using it that you can afford to pay the extra effort.

Glad that we agree it is a Linux problem.

Re: Windows API is Successful Cross-Platform API (2024)

#112
post #3

(2024) Interesting provocative article, I bet it will be praised on some Microsoft sponsored conference. Wine and Proton are not tributes to Win32's portability. They are symptoms of a desktop market that Microsoft locked hard enough that the rest of us had to reverse engineer our way out. Market damage, not collaboration. The ecosystem was not won on technical merit. OEM per-processor licensing, embrace-extend-extin…

Came to say similar. We should see the success of Wine/Proton as success hard won despite attempts to lock software in to Microsoft's business, not some triumph of design or something beneficial MSFT did.

Re: Windows API is Successful Cross-Platform API (2024)

#113
post #3

(2024) Interesting provocative article, I bet it will be praised on some Microsoft sponsored conference. Wine and Proton are not tributes to Win32's portability. They are symptoms of a desktop market that Microsoft locked hard enough that the rest of us had to reverse engineer our way out. Market damage, not collaboration. The ecosystem was not won on technical merit. OEM per-processor licensing, embrace-extend-extin…

> Interesting provocative article, I bet it will be praised on some Microsoft sponsored conference.

"Win32 is the only stable Linux desktop API" has been a common observation in the Linux community for years. I'm not sure why you're acting like it's a Microsoft-sponsored smear

Microsoft may have indeed won first place via dirty anticompetitive tricks, but Linux/*nix would need a similarly stable API first in order to have won at all. And obviously plenty of companies and initiatives have tried (from Red Hat to Valve), and yet progress has still been glacial

Also nobody's saying it's a particularly good API, but it is stable. As "Worse is better" famously observed, the technical elegance of a standard has barely any effect on its adoption, versus more boring social and commercial factors

Re: Windows API is Successful Cross-Platform API (2024)

#114
post #16

Earlier quoted context omitted.

I am not sure if this holds, I have witnessed apps that dont work in newer versions of Windows.

They exist but they’re in the minority. Compare this with the Linux world, where userspace compatibility between one major distro release and the next, 12 months apart is very much a roll of the dice.

The biggest problem with user space compatibility on Linux are binaries compiled and run on older releases, not future ones.

Re: Windows API is Successful Cross-Platform API (2024)

#115
post #62

Earlier quoted context omitted.

they don't run without a runtime, and that runtime is backed by glibc, they just moved the issue one more layer. Virtually all software for the desktop is compiled once and then shipped to users and they never see the source. This works for Windows and macOS because their ABI allows it. For Linux you have to target each and every distro like a whole OS and keep up with it or your app won't run anymore after a few yea…

I kinda see this as a usability issue. If the app developer is willing to wrap the whole “download source and then compile” with a one click installation shield type software, most users would be fine. But yeah then they need to track distros and such. I hope there are a couple of distros that have better back compatibility eventually.

And how would they distribute that compiler-installer as a portable binary?

Re: Windows API is Successful Cross-Platform API (2024)

#116

Earlier quoted context omitted.

I kinda see this as a usability issue. If the app developer is willing to wrap the whole “download source and then compile” with a one click installation shield type software, most users would be fine. But yeah then they need to track distros and such. I hope there are a couple of distros that have better back compatibility eventually.

And how would they distribute that compiler-installer as a portable binary?

Yeah it’s chicken and egg again.

Maybe just focus on one or two distros maybe? Something focused on desktop experience.

Re: Windows API is Successful Cross-Platform API (2024)

#117
post #3

(2024) Interesting provocative article, I bet it will be praised on some Microsoft sponsored conference. Wine and Proton are not tributes to Win32's portability. They are symptoms of a desktop market that Microsoft locked hard enough that the rest of us had to reverse engineer our way out. Market damage, not collaboration. The ecosystem was not won on technical merit. OEM per-processor licensing, embrace-extend-extin…

Speaking of portability, As a developer who has shipped software on Windows for over a decade, and then some on Linux. Targeting Windows is insanely easy, because of the ABI. You compile once and you have an extremely high chance that it just works on every Windows version. Not perfect, but better than any other platform ever made. Heck I've used software from CDROMS where the binary was compiled 20 years ago and it…

I'm eternally confused by what an ABI actually is. Especially now that people say the win 32 api is the stable Linux ABI. Genuine question, what is the difference as they both seem to be conflated.

Re: Windows API is Successful Cross-Platform API (2024)

#118
post #69

Earlier quoted context omitted.

Microsoft releases new APIs too, but no one uses them, especially not games.

XDK, GDK and Agility SDK are also part of API updates.

And Unreal Engine 5 needs the Agility SDK, creating problems where games wouldn't run if your Windows version wasn't new enough. (Same as the typically encountered glibc problem of the user having an older version than the build needs, really.) (I think most of those particular issues were "solved" now with Win10 being EOL and so the developers just rub their hands of it and say "upgrade". Or use Linux and Steam, where no thanks to MS or the gamedevs themselves, games old and new can just work.)

Dependency hell comes for everyone, win32 may be stable but the broader ecosystem for Windows is little better than anything else. I say little because at least MS does still commit to a lot of backwards compatibility and ensuring some very old DLLs are still part of new Windows 11 installs.

As another comment notes some older Humble Bundle linux builds just don't work anymore on modern systems; some of those are just because they assumed a particular libjpg or libxml or whatever would be part of the base distro install and be around indefinitely. Bad assumption. But fixable the same way as missing DLLs from Windows builds.

Re: Windows API is Successful Cross-Platform API (2024)

#119
post #117

Earlier quoted context omitted.

Speaking of portability, As a developer who has shipped software on Windows for over a decade, and then some on Linux. Targeting Windows is insanely easy, because of the ABI. You compile once and you have an extremely high chance that it just works on every Windows version. Not perfect, but better than any other platform ever made. Heck I've used software from CDROMS where the binary was compiled 20 years ago and it…

I'm eternally confused by what an ABI actually is. Especially now that people say the win 32 api is the stable Linux ABI. Genuine question, what is the difference as they both seem to be conflated.

A library with a stable ABI means that newer releases of that library do not break compatibility with old binaries linked against it. This is why old Windows apps still work on newer OSes.

For example in a typical C library, as long as you don't rename or remove any existing functions/exports (or change their signatures), you can continue to add new ones over time without breaking forwards compatibility (old binaries can link/call into the newer library and still work). This is also important for security reasons and not just application compatibility.

Usually projects will only make ABI-stable changes within minor versions, and leave the breaking changes to major versions where upgrading or recompiling the original application becomes necessary.

For C++ this is more complicated because it's all compiler-dependent (no language-defined ABI), and with classes you typically can't re-arrange anything (like class members) without breaking compatibility.

Re: Windows API is Successful Cross-Platform API (2024)

#120

Earlier quoted context omitted.

I kinda see this as a usability issue. If the app developer is willing to wrap the whole “download source and then compile” with a one click installation shield type software, most users would be fine. But yeah then they need to track distros and such. I hope there are a couple of distros that have better back compatibility eventually.

And how would they distribute that compiler-installer as a portable binary?

Shell script
Post reply on HN