As a user, the best way to handle applications is a central repository where interoperability is guaranteed. Something like what Debian does with the base repos. I just run an install and it’s all taken care of for me. What’s more, I don’t deal with unnecessary bloat from dozens of different versions of the same library according to the needs of each separate dev/team.
So the self-contained packages must be primarily of benefit to the devs, right? Except I was just reading through how flatpak handles dependencies: runtimes, base apps, and bundling. Runtimes and base apps supply dependencies to the whole system, so they only ever get installed once… but the documentation explicitly mentions that there are only few of both meaning that most devs will either have to do what repo devs do—ensure their app works with the standard libraries—or opt for bundling.
Devs being human—and humans being animals—this means the overall average tendency will be to bundle, because that’s easier for them. Which means that I, the end user, now have more bloat, which incentivizes me to retreat to the disk-saving havens of repos, which incentivizes the devs to release on a repo anyway…
So again… who does this benefit? Or am I just completely misunderstanding the costs and benefits?
Snaps benefit Canonical. They’re trying to build their own walled garden, and anyone else benefiting is not a consideration.
Flatpaks are different, because they aren’t purpose-built to benefit a single company. I wouldn’t use them to install most things, but there’s a few places where there’s benefits for at least some people. It’s a lot easier to maintain large projects like Firefox on older distro releases for example. You get sandboxing, so that say a bug in Firefox won’t let malicious javascript take over your system. It lets vendors release closed source software that would never be included in your distro’s repos. These are all things that may not benefit you, but in theory they’ll benefit enough people that it’s worth it.
I’ve also moved onto NixOS so don’t use either one anyways. I think Nix or something like it is the future, even if you’re running a more traditional distro, though that might just be misplaced optimism, see the success of worse is better.
That’s a fascinating topic, and I wonder how AppImages sit in this argument.
OH I asked a question like that not to long ago. Appimages do tend to be smaller, they have sandboxing, and getting updates can be hard. Sometime you have just download the new appimage and delete the old one. Other then that is does serve the same function of universal install format.
AppImages are kind of harmless in this, as they are just bundled up binaries and dependencies. They don’t force you into a store, update system or even installing of the app, they are just files that sit on drive. They can be very useful if you want to quickly change between old and new versions of an app.
They wouldn’t work for replacing a traditional Linux package manager, but as for portable Linux binaries, I quite like them.
AppImages are the Linux equivalent of portable .exe’s.