I understand that snaps make it easier for developers to distribute their software, but what about the advantages for users? What are the most compelling reasons why I would install, say, Intellij IDEA from the Snap Store instead of downloading the normal version from the Intellij website?
Snaps contain all the software libs they need to work and won’t use system libs. This way, you can have a very stable, very secure base system and your apps will take care of themselves.
The primary benefit is that end users don’t have to worry about anything. You just install it and run it. For proprietary software, which often links to outdated libs, having the exact dependency versions built into the install package is extremely nice.
The touted advantage for users is more software choice. Developers don’t need to build specific debs/rpms/whatever for specific release versions of specific distributions.
Snaps, flatpaks, etc., could avoid dependency isssues, like Package A wanting a newer version of some library that conflicts with an older version required by Package B. The snap for Package A would contain, and isolate, all the dependencies it needs. Upgrading/deleting becomes cleaner, too.
An all-snap system would probably be fine. I don’t find the current situation, tho, very enticing.
Are their any performance reasons to go with snap? Or will a snap app be as fast as the regular .whatever package.
Because in theory ( in my mind at least ) they ( snap package builders ) could static link everything and give the app better performance.
It won’t be faster unless there is a library issue when compared to a normal installation such as mentioned above 2 applications want 2 different libraries. The main advantage is isolation and updating. The isolation works with newer snaps. Some of the older use classic confinement which still gives them access to the system.
Snaps/flatpaks also give you more mobility between distributions.
This is the case for me because I use Solus for my desktop. I would not be able to without Snaps. Their package system is still very young so it is missing things I need.
What do you mean?
As a user, my own self-centered interest is access to software I want to use that isn’t packaged for the distribution I’m using. I don’t think that’s been the case for me, yet.
I mean, pretty much nothing.
If it’s commercial software you’re gonna be stranded without using the official .run on a supported OS, if your distro has out of date packages then 3rd party repos typically work just fine, and stay consistent with the distro’s handling of your software
and if all else fails there’s appimages, which don’t do any symlinking insanity or let people execute their baked in dependencies arbitrarily.
basically it’s a last resort 4th or 5th option