Of course for most packages the answer is trivial: if it's some tool or library, deb is the only option, while for some proprietary software snap is the only option.
It seems Ubuntu is heavily pushing and promoting Snap packages, citing advantages in packaging, isolation, security, updates, etc. yet all applications that ship with Ubuntu 18.04 are installed as deb packages.
One example is Firefox, which is a package that should be kept up-to-date for security reasons, and that in the past had conflicts with distribution package maintainers about security and branding (Iceweasel). Yet Canonical chose to ship Firefox as a deb package.
For packages that have both a snap and a deb, this raises the question: Which one should you install? And if the answer is snap, should I actively migrate installed deb's?
Generally speaking, I would say you should stay with DEB for most applications that rely on system libraries. This has the advantage that if you update this one library e.g. for security reasons, all applications using this library will benefit, even if the maintainer of the original application is unaware of the vulnerability.
SNAPS are good in cases where you are interested in updating particular applications without updating your entire system. E.g. you are on an LTS release, but want to have the newest version of a particular application. Compared to PPAs where the applications have to be compiled against the "old" system wide libraries, in a snap the applications bring their own libraries. This is easier for maintainers and may keep you from landing in dependency hell if you happen to otherwise use a lot of PPAs.
One of the main disadvantages of snaps is the much more space needed since every software has its own dependencies in it while deb packages use shared dependencies across the system, with a much smaller impact.
The utility of snaps comes in when you want to keep your system isolated (e.g. from proprietary binaries) or the package itself relies on different dependencies from the one you have installed (more recent ones for example).
This is a highly opinionated answer.
I personally always use the deb or any other inclusive packaging. I do not use snaps because I feel they are like walled gardens, unlike the open ecosystem that Linux stands for.
I have mistakenly installed snaps a few times due to unclear/ambiguous description/metadata in the software center. I found they degraded my laptop experience. Those were removed promptly.
If an app has only a snap package I would rather not use the app itself.
I am apprehensive that one day snappers might say you don't even need the OS.
It is very difficult not to use SNAP. It seems you have no other choice. Yes, you can choose to install app DEB or
apt-get install ...
via terminal but even that doesn't always seem to be the solution. After quite a bit of searching I found the solution. You can, not easily, remove SNAP altogether.Kevin Custer tells you how to destroy SNAP. I tested this in 21.04. https://www.kevin-custer.com/blog/disabling-snaps-in-ubuntu-20-04/
After these steps you may have to reinstall gnome-software
sudo apt-get install gnome-software
. From then on, SNAP will no longer be available in the software store.Do you have SNAP?
Lets start, quick summary:
Let's find out, any SNAP left?
Thank Kevin Custer!
From a historic perspective, it might be good to rely on the old system which is Debian and apt. As it is permanently improved, there seems to be no reason to change to the newer system.
So keep the traditional!
In Ubuntu 22.04 they force You to use snap (i.e. for firefox), where deb package in facts installs snap package. As I had a lot of problems with snap version of firefox (no video acceleration, SSO problems, Gnome extensions interface blocked, vpn extensions problems etc.) fortunately there are few articles on the web instructing how to revert to classic deb version and prevent system from overwrite snap over deb package.