Live data from Hacker News

Windows API is Successful Cross-Platform API (2024)

retrocoding.net

61–70 of 147 posts

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

#61
post #46

Earlier quoted context omitted.

It's Linux's failure that one of the world's biggest corporations outspent it on marketing by orders of magnitude? You can sell crap like hotcakes with enough money and advertising minds. Yours isn't really an argument for Linux APIs being any worse or better quality. > Linux adopted Win32 because it actually worked. WINE would have been invented one way or another because enough people would have wanted to run Windo…

> It's Linux's failure that one of the world's biggest corporations outspent it on marketing by orders of magnitude? No, It is Linux's severe failure that it lacked a singular, stable, and unified userspace GUI API.

> No, It is Linux's severe failure that it lacked a singular, stable, and unified userspace GUI API.

Careful, some people are too hell bend on idealogies than making a reliable product. They'd never understand this.

This is one of the reasons why open source (free as in beer) will never work for anything serious. When my work depends upon a software someone made for free, there's an unnecessary power dynamic in play where since I didn't pay for it, they can rugpull me anytime. Before someone comes with the argument of forking, that's not how an economy works. I can't be the farmer, the truck driver, the salesman and sometimes even the buyer at the same time.

The kernel doesn't owe anything to the distros, which is insane, distros doesn't owe anything to the various libraries and vice versa, none of them owes anything to the application developers. It's a boat where each person is rowing in their own direction because they don't care what others does with their code and they don't have to. Because they are working for FREE®.

The effects of this is catastrophic. Everytime I try to switch, I can't find a single userspace application that works half as good as windows applications. People need incentives to make their work good, no one does anything for free. Free just means it sucks.

If microsoft/apple/google tomorrow releases their own distro, every single one will abandon their flavor of the week arch/ubuntu/mint/fedora for that one. One that's made by people in exchange for money. I bet the ubuntu developers use macbooks.

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

#62
post #59
post #54

Earlier quoted context omitted.

glibc is the main reason linux on the desktop has such a low adoption rate. you cant just go and download a precompiled blob from a website and run it everywhere, like you can with macOS and Windows. glibc only targets one audience, one which can recompile its apps when needed. What linux badly needs is a stable ABI for Userspace Apps, and Win32 is just that sadly.

> you cant just go and download a precompiled blob from a website and run it everywhere, like you can with macOS and Windows. Sure you can! It's called AppImage or Flatpak or Snap! I'm also not sure why compiling is treated as some taboo? It's not like Windows where it's actually impossible to set up a toolchain. Your distro comes with one installed! So that means you can run a single installer file, just like in Win…

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 years.

This is also the reason why Linux has package managers and windows didn't have a official one for nearly 40 years. So its not all bad.

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

#63
post #49

Earlier quoted context omitted.

> Supporting Linux is a monumentally tremendous pain in the ass. Radically more than literally any other platform. It is hands-down the hardest and most painful to support natively. Funny, I have the same feelings after 5 seconds of using MSVC or looking at Win32 documentation. Or is it WinRT now, or is it .NET Core, or .NET Framework, or UWP or OLE or COM, or whatever the API du jour is which will be slightly incomp…

Sarcasm is an extremely poor method of communication. Speak plainly and clearly. > Performance profiling and debugging tools are critical for game development. Profiling and debugging tools are RADICALLY superior on Windows. RADICALLY. GDB/LLDB is garbage. For debugging Visual Studio (for adults, not VSCode), or on special occassion WinDbg, is great. Raddbg may be awesome some day and may also support Linux. That'll…

Hey, want to race to install toolchains? I'll install everything I need to build the Linux kernel and, say, typical SDL2 applications. I'll give you a 3 hour head start, all you have to do is install Visual Studio, WDK, and the Windows SDK, and hope they play nicely with each other!

Good luck! Then we can switch places so you can install for the 5.3% (and growing) of your gaming userbase that doesn't use an OS with ads in it.

P.S. he who lives in the house of WinDbg is not allowed to throw stones. At anyone. Ever. Nobody thinks that it is "great," you must be kidding.

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

#64
post #62
post #59

Earlier quoted context omitted.

> you cant just go and download a precompiled blob from a website and run it everywhere, like you can with macOS and Windows. Sure you can! It's called AppImage or Flatpak or Snap! I'm also not sure why compiling is treated as some taboo? It's not like Windows where it's actually impossible to set up a toolchain. Your distro comes with one installed! So that means you can run a single installer file, just like in Win…

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…

It's the same problem, just spread out to different layers...Windows had DLL hell too, and then eventually everyone just packaged all of their required versions of DLLs and redistributables into their MSI.

What about Linux do you think changes so much? Everything still speaks X11 or PulseAudio on desktop. More broadly, the standard library is...the standard library? What's the specific issue?

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

#65
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…

> The ecosystem was not won on technical merit.

This is always the case.

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

#66
post #42

Earlier quoted context omitted.

Proton represents Valve's failure to make Linux gaming attractive to game studios. Not even those that have Android/Linux NDK builds, bother with porting to GNU/Linux. Besides blaming Microsoft, look inside into the endless reboots of audio stack, GNOME vs KDE vs XFCE vs Sway vs whatever is cool in Linux Desktops this month, X Windows vs Wayland,... I was a believer, until 2010, then went back into Windows 7. If it w…

> Proton represents Valve's failure to make Linux gaming attractive to game studios. > Not even those that have Android/Linux NDK builds, bother with porting to GNU/Linux. It is a huge hassle to make a new build to a new platform. You double build system, release management, and testing. Compared to just one plat. Games are complicated, and testing all the dynamic behaviour is also complicated. Making just a Win32 bu…

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.

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

#67
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 still works today without any modification.

With Linux, you have to target specific distros, do something insane like a giant bundle of everything, or static linking or some other craziness, or open up your source code and let someone else take the headache. Oh and I almost forgot.. install scripts that detect distros, install dependencies. And god help you if you need to ship a kernel module.

>The ecosystem was not won on technical merit. OEM per-processor licensing, embrace-extend-extinguish against Java and the web, document format lock-in, and a long pattern of obstructing standardization attempts that would constrain Windows (PWI in 1994, ECMA-234 in 1995, OpenDocument later) while pushing their own through when it extended reach.

Windows has broad hardware compatibility, a stable enough application platform (see above), aggressive backward compatibility, a large developer ecosystem, and distribution through OEMs. Those are technical merits, even if they are not the only merits.

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

#69

Earlier quoted context omitted.

> Proton represents Valve's failure to make Linux gaming attractive to game studios. > Not even those that have Android/Linux NDK builds, bother with porting to GNU/Linux. It is a huge hassle to make a new build to a new platform. You double build system, release management, and testing. Compared to just one plat. Games are complicated, and testing all the dynamic behaviour is also complicated. Making just a Win32 bu…

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

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

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

#70

Earlier quoted context omitted.

> It is a hilarious and catastrophic failure of Linux userspace that the best API for running games on Linux is Win32 Studios don't target Linux, they target Windows and sometimes Mac. Imagine if Flappy Bird targeted only iPhone, because there were only 50,000,000 Android users in the world (hardly worth supporting). Then Android creates an iPhone runtime on Android so people can play Flappy Bird on it, and you concl…

I don't need to imagine a made-up scenario that doesn't make sense. We can look at what has happened at face value. The calculus is very very very boring and simple. Game devs will support every single platform on the planet in which the cost to support that platform - both directly and long-term maintenance - is less than the increased revenue that platform provides. It is not uncommon for indie games on custom engi…

> The calculus is very very very boring and simple. Game devs will support every single platform on the planet in which the cost to support that platform - both directly and long-term maintenance - is less than the increased revenue that platform provides.

Companies end up not doing profitable things all the time, for many reasons. One rational reason is that while action 1 might be profitable, action 2 is even more profitable. So the fact that Linux is not supported does not show that it would not be profitable, but rather that there are other things the companies can use labour for which they think is even more profitable. If they could freely clone their employees (and "unclone" them afterwards) all profitable things would get done.

(This is just nitpicking about your economic argument, I have no reason to think your conclusion is wrong).

Post reply on HN