The issue is folks expect this to be at a higher level, so when libc or GTK or Qt etc. have breaking changes, all your apps using the old versions fail. This is a legitimate pain point with traditional distros.. I don't want to sound like I'm downplaying it.
However, this is basically solved by flatpak (and others like it, eg snap) which contain _all_ these dependencies in the package. Layering (ala containers) is used for deduplication so you don't have 20 copies of a given GTK version.
While MacOS provides the windowing toolkit etc. at the OS level, it's otherwise similar to how a .app file works. Installers aren't dropping dynamic libraries and resource files all over your disk, the app is "self-contained."
The only proprietary software I have running on my machine is electron apps, which are essentially bloated VMs. As we’ve seen from this thread, this is still apparently too great of an engineering feat for anthropic to tackle. I don’t think I’m unique in this regard.
Of course a lot of Linux users these days just live their lives through browsers. That's pretty sad.
Teams: Was electron
Steam: Valve is deeply invested in Linux, this isn't them just shipping an app. Different category.
Jetbrains: Java
Cursor: Electron
Discord: Electron
Matlab: Java
ABI compatibility doesn't matter for any of your examples.
Isn’t Steam mostly webviews though ?
> Java
Well.. It’s not that massively different from running Qt apps in Gnome, though?
> ABI compatibility
I’m sure it matters for Swing to an large extent. Of course it the problem of the people developing the UI framework rather than the end app