Proton leads to some bizarre behaviors though. My worst experience is on a surplus "mobile workstation" with Optimus graphics. It has a pretty robust Intel quad-core and one of their better iGPUs as well as an NVIDIA Quadro M5000M which has decent VRAM and should compare almost to a GTX 1650.
The packages pulled in by steam define a bunch of vulkan providers which then confuses steam. Many games won't even launch and you have to manually kill off a bunch of steam worker processes to even successfully shutdown and restart steam. You can't uninstall the package due to dependencies, so instead have to manually move/rename some files under /usr/share/vulkan/icd.d/ to only leave the one for NVIDIA.
Then, games launch but have very inconsistent performance. I don't know if this is because Optimus is competing with the game for PCIe bandwidth, or something else still going awry with the driver stack.
Arguably, WINE has always been the most stable ABI on Linux. Good luck just getting a 5-year-old binary of any desktop file manager running on a modern Linux installation.
I’m dead serious. Grab a copy of Nautilus or GNOME Files from Ubuntu 16.04; try running it on Ubuntu 22.04. It isn’t easy. Now imagine a game.
This is only because of the nature of dynamic linking. Have a statically linked executable and you should be fine. Not that it should be an issue to get old software to run you simply need to download the dependent lib versions.
Anyone who sais this i feel hasnt worked very much with software, not that you should need to thats up to the one distributing the executable
What you mean is: the only stable ABI in Linux is the Linux kernel’s itself.
Windows is the opposite: the only stable ABI is the dynamically linked user space ABI. So yes, it’s perfectly possible to have a stable dynamic ABI across a dynamically linked boundary.
That is completely irrelevant to the discussion. The point is that both systems have very stable ABIs. Windows has a somewhat higher-level stable ABI, but as a result it is a much wider surface to keep compatible, it breaks much more often, it requires a lot more hacks to keep it stable over time (program-specific hacks kept around for decades), etc.
This is the point of difference: the layer at which each is stable. NOT whether Linux is stable.
The nature of stability literally is the discussion; I replied to a post that blamed the lack of a Linux equivalent to Win32 on dynamic linking. That the stable ABI you get on Linux requires you to bundle literally every dependency you have as if distros don't exist... And then still have issues because the kernel ABIs for graphics are entirely GPU dependent...
The two approaches are definitively not the same (as you claim), and the significant shortcomings of Linux's approach are why Win32 is becoming the ABI devs target even on Linux.
>That the stable ABI you get on Linux requires you to bundle literally every dependency you have as if distros don't exist...
This is not true. If your target platform is a distribution then you can assume that distribution's guarantees hold true.
What you cannot do is target "GNU/Linux" broadly and assume every glibc-based system running on top of the Linux kernel has all the libraries you want to depend on.
Pick a platform and target it. That can be the kernel. That can be glibc+the kernel (hey look GNU/Linux really is useful terminology), that can be RHEL9 or it can be Debian xyz. But don't pick "Linux" then make assumptions about userspace.
Your example doesn't make sense. Linux distributions have always had this trade off: Binaries provided through the package manager work with the libraries that are provided by the same package manager. I have a bunch of older gog or Humble Bundle Linux releases of games that still work fine on my system because (Windows style) they carry around all of their libraries with them. Linking Xorg doesn't make sense and applications linked statically against libX11 will work perfectly fine even with Xwayland.
https://www.x.org/wiki/Releases/https://www.gtk.org/docs/installations/linux/
I mean it will probably not be painless and other applications u run might break* but xorg is relativly stable.
Liba are out there are free to get. Usually people are arguing that the conveniences isnt there not that its not possible.
* if u dont sandbox this a bit with custom lib paths
What I am disputing is how this comes off to a game developer; 5 years from now, heck, 2 years from now when their games require library surgery to keep running... that’s just an awful experience.
That is not what a developer would consider a stable ABI. They could look into Flatpak - but look at what’s trending on Hacker News today - a rant against Flatpak.
Win32 over Proton is the winner for them; all other proposed solutions are hilariously naive and optimistic to what game development requires. No game developer is ever going to individually package, and consistently repackage, their game for 20 distributions. That’s never going to happen.
Well u sure made an effort to exclaim how hard it would be. If a developer had an install guide with links to dependencies or mirrors to those dependencies it wouldnt be very hard as they should have internally for their dev/ testing. Do windows devs not track their dependencies? Relying only on Win32 ? Whos the naive one ?
my memory might be wrong but I had issues with native linux games that had level editor based on GTK and python, could not get them to run after 3 years since launch, I do not claim it is impossible just that I could not do it with some a few hours effort.