(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…
> " ...embrace-extend-extinguish against Java... " Early Java was horrid for everybody except the architecture astronauts who could cram ten GoF design patterns into a hello world program. It only got traction because a different wannabe monopolist, Sun Microsystems, spent heavily to get it pushed into CS curriculums. Fortunately, the one-two punch of Linux and Intel killed Sun or we might all be cursing them today i…
Windows API is Successful Cross-Platform API (2024)
51–60 of 147 posts
Re: Windows API is Successful Cross-Platform API (2024)
#52Earlier quoted context omitted.
None of your opinion on Java changes the fact that Microsoft used it's monopoly to execute an embrace, extend, extinguish strategy on Java. It is well documented since they lost an anti-trust court case on it [1]. [1] https://en.wikipedia.org/wiki/United_States_v._Microsoft_Cor... .
Back when the word hacker still meant something, that was the opinion of most hackers. Microsoft being bad guys did not make early Java versions good. [EDIT] I'd actually say MS losing the J# lawsuit was a net positive since it gave Hejlsberg the opportunity to create C#.
Re: Windows API is Successful Cross-Platform API (2024)
#53Earlier quoted context omitted.
So what exactly does he mean then?
He means the Internet runs on the Internet Protocol Suite and not the "superior" OSI Protocol Suite (that people under age 50 have never heard of because it failed).
Re: Windows API is Successful Cross-Platform API (2024)
#54Earlier quoted context omitted.
The point is not that Win32 is exemplary. The point is that it's compatible. More compatible, in some cases, than native apps for non-Windows platforms. A Win32 binary that runs in Wine is likely to work on more Linux distros than a native Linux binary, due to decisions made by glibc and distro maintainers over the years.
Uh, no, a Win32 binary will run in Wine because of the concerted effort of thousands of talented developers for more than a decade, painstakingly reimplemting Win32 into a a compatibility layer for it to run on Linux. There has been little to no interest in doing the reverse, at least until WSL, which is just containers anyways. (WSfU barely counts as an "attempt.") I would hardly consider anything relying on a compa…
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.
Re: Windows API is Successful Cross-Platform API (2024)
#55Re: Windows API is Successful Cross-Platform API (2024)
#56Earlier quoted context omitted.
> " ...embrace-extend-extinguish against Java... " Early Java was horrid for everybody except the architecture astronauts who could cram ten GoF design patterns into a hello world program. It only got traction because a different wannabe monopolist, Sun Microsystems, spent heavily to get it pushed into CS curriculums. Fortunately, the one-two punch of Linux and Intel killed Sun or we might all be cursing them today i…
None of your opinion on Java changes the fact that Microsoft used it's monopoly to execute an embrace, extend, extinguish strategy on Java. It is well documented since they lost an anti-trust court case on it [1]. [1] https://en.wikipedia.org/wiki/United_States_v._Microsoft_Cor... .
The Java stuff wasn't even the craziest part. The whole thing from investigation to the appeal took the FTC and DOJ 11 years, where they were unable to kill of Microsoft's dominance of Internet Explorer through lawfare, but it only took Mozilla and later Google six years, nearly half that time, for an open-source web browsers to have more market share than Internet Explorer.
It turns out that a better product was all that was needed. It's too bad that the Mozilla Foundation has changed course and is now adamant that Firefox be as unusable as possible.
Re: Windows API is Successful Cross-Platform API (2024)
#57The Unix world was lazy about it because of the approach of recompiling across somewhat source compatible systems thanks to POSIX, so there was reasonably fast portability if you didn't go too far off the beaten path.
But doing anything other than C (w/ Cfront maybe) and Fortran and Pascal was a problem, even without binary compat. Even from version to version (legacy of which we now have in glibc breaking binary compat all the time).
Microsoft went hard on the idea that if you bought/build a program for Windows version X, it would run on version X+1. You didn't have to buy a special upgraded version. You could update easier.
The same approach later drove introduction of things like PC System Design Guide and ACPI so you could just upgrade your computers instead of waiting for special OS upgrade just to boot (like it was common in other platforms, including Mac, VMS, and Unix workstation world).
Design wise, GUI parts of WinAPI aren't all that different from working with X intrinsics etc libraries (i.e. the parts above raw xlib)
Re: Windows API is Successful Cross-Platform API (2024)
#58Earlier 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…
Re: Windows API is Successful Cross-Platform API (2024)
#59Earlier quoted context omitted.
Uh, no, a Win32 binary will run in Wine because of the concerted effort of thousands of talented developers for more than a decade, painstakingly reimplemting Win32 into a a compatibility layer for it to run on Linux. There has been little to no interest in doing the reverse, at least until WSL, which is just containers anyways. (WSfU barely counts as an "attempt.") I would hardly consider anything relying on a compa…
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.
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 Windows, except this is a shell script or anything else—and it can just compile and link everything for you, quite easily! The user doesn't have to know or understand how this works at all.
Why is that bad? It's bad to run binary blobs...! It's good to tailor your software to your specific environment and hardware!
Re: Windows API is Successful Cross-Platform API (2024)
#60Earlier quoted context omitted.
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…
> 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…
> 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 be great. Today is not that day.
Superluminal is spectacular. They're working very hard on a Linux version. It's taking them a long time because Linux is bad.
> All major game engines I am aware of support native Linux builds and have for years, anyways.
Unity and Unreal do have buttons to export to Linux. Most proprietary game engines don't have Linux clients. Linux for headless servers you control is fine.
> 80% of the servers
Yawn.
The Linux pain is trying to deploy proprietary binaries that run on customer machines which are infinite in variation. Running headless on a single Linux image you control is very different.
Anyhow. Let me know when you ship a game with 3D graphics to customers and have to deal with all their support issues!