60

This is not a duplicate of the following questions

because:

  • My question specifically states that I am interested in end-user experience, not ease or efficiency of development, which is what the other question largely refers to. As has been noted, development/deployment affects end-user experience, but it is not all there is to it, and neither of the referenced questions address issues that directly impact an end-user's ability to use the application (e.g. trouble accessing data on other partitions, sluggishness, etc.)
  • Maybe "compelling" wasn't the right word to use; my intent was to ask about real-world, experiential consequences, i.e., things that happen or don't happen, as opposed to theoretical/architectural statements that, while presumably accurate, don't appear to be backed up with any real-world examples to support the statement. I should have stated more directly that my intention was to get answers that consider the balance of "advantages" to snaps against the real-world downsides experienced by end-users. The "duplicate" question is largely theoretical, and doesn't discuss end-user experience at all.
  • The "duplicate" question makes no mention of anything remotely similar to the example I used here, i.e., that there is an end-user downside to snaps (in this case, lack of access to data on other partitions and snap app performance) that isn't discussed in any available documentation that I can find.

While I understand that snap has a big advantage in making apps more widely available, is there any compelling reason to choose snap over apt, if the app is available for my distro/version via an apt package?

I am curious because I've been doing some reading about snaps, and all the excitement about the method seems to be about things that are advantageous for app developers, but I've seen virtually nothing on how this makes life easier for end users (aside from the obvious; that they may be able to install apps that aren't otherwise available on their distro/version).

I installed snapd and installed a couple of snaps and was really frustrated and disappointed. The snap apps are slow and it's difficult, if not impossible, to access files on other partitions from within the snap.

While I've seen plenty of info that says snaps are "faster," "easier," "safer," etc., I haven't been able to find anything that explains why or how this is actually the case.

Being very new to Linux, I am wondering if maybe I'm just missing something obvious? To be clear, I understand why the technology might be useful overall, but I can't find anything that explains whether/why it is a better option even when the app in question is available for install via a more traditional method, and all dependencies are met.

pomsky
  • 68,507
LSharkey
  • 1,093
  • Most applications in Ubuntu and other distros aren't uptodate. If you are happy with that, then no reason to use snap, obviously, you don't have to. – mikewhatever Aug 23 '17 at 03:15
  • @mikewhatever - I'm aware that I don't have to use snap - that's why I'm asking the question. Applications not being "uptodate" doesn't address my question, because uptodate is very vague - whether or not there is really an end-user disadvantage to an app being at the latest possible version is highly dependent on the specific situation. So my question about that is, how does the potential disadvantage of not uptodate weigh against the actual disadvantage of limitations created by installing an app via snap. – LSharkey Aug 23 '17 at 20:28
  • 1
    I voted to reopen, however your point (1) directly affects users because it relieves both users and developers from the task of (potentially) complicated software deployment leading to a better overall experience. – David Foerster Aug 23 '17 at 23:29
  • @muru - no, it's not a duplicate. The question you referenced doesn't address the downside to end-user experience with snaps. – LSharkey Aug 24 '17 at 05:01
  • I did mention two - higher disk usage, possibility of lack of security updates. Other than that, what downsides are you talking about? – muru Aug 24 '17 at 05:03
  • @DavidFoerster - yes, agreed - that development/deployment directly affects end-user experience, but my point is that it's not only about development/deployment, and I have yet to find any fact-based discussion that addresses the aspects of snaps that adversely affects end-user experience. I want to have enough information about both the advantages and the downside so as to be able to make a sensible decision in any given situation. – LSharkey Aug 24 '17 at 05:05
  • @muru - I mentioned two downsides there: difficulty accessing data on a different partition from the snap and sluggish performance. Regarding the two you mentioned, that might be directly experienced by end-users, but also might not - it might be more of an administrative issue. I'm interested in end user experience – LSharkey Aug 24 '17 at 05:22
  • @LSharkey the few snaps I tried didn't have performance issues, and depending on who you ask, the data access problem is a feature, not a bug. If you have any concrete data about performance, file a bug report please. – muru Aug 24 '17 at 05:24
  • @muru - I don't have any concrete data about performance; it was just what I noticed. That's one of the reasons I was asking this question. I am very frustrated that there's no thorough and easy to find documentation on any performance testing, "features"/bugs that effect usage/functionality of apps, etc. – LSharkey Aug 24 '17 at 21:16
  • @muru Regarding your statement that the data access issue is a feature rather than a bug, that's really not germaine to this discussion. My concern is about impact on end users; whether that impact is by design or because of architectural limitations doesn't really matter to the end user. If they can't do something they're used to doing, it's a problem for them. – LSharkey Aug 24 '17 at 21:16
  • @ muru - I must say, though, that this discussion with you has made the whole thing much clearer for me, so thank you. I'ts becoming clear to me what the industry thought process is behind adoption of snaps, and regardless of there not being the kind of documentation I was hoping for, I think the answer to this question is more or less "buyer beware" - i.e., test each app, look for workarounds to new "features", etc. So if you want to summarize your comments and post them as an answer, I will mark it as the solution (I think that's how that would work, correct?) – LSharkey Aug 24 '17 at 21:20
  • 1
    As an end user the first problem I detected was during a recent upgrade from 16.04 to 18.04. When it got to the part with dealing with snaps the process was very slow. First it detected no snaps installed and then proceeded to install 6 snaps, then started reading state information which took forever even on my laptop with an SSD. Seriously WTF is it doing? – sabujp Sep 04 '18 at 07:14

3 Answers3

46

I can share the results of some experimenting with two versions of LibreOffice 6.1.3.2: one as a snap delivered with ubuntu 18.04 and another one installed from the official ppa. Please keep in mind the values I give below are approximate.

Startup time of an empty Calc spreadsheet

  • ppa: 1.5 s

  • snap: 13 s

Conversion time of 13-slides (mostly png pictures) to pdf with impress

  • ppa: 9 s

  • snap ~70 s

Disk usage [MB] (expected / real)

  • ppa: 369 / 483

  • snap: 507 / 1269

I realize these values depend on the hardware and specific configuration of the system I'm using. However, considering I have used the same laptop, operating system and LibreOffice versions, I believe relative comparison is still informative.

Altogether, on my laptop snap image occupies more than 2 times the disk space and it is almost 10 times slower than the corresponding ppa. In contrast with common opinions subsequent startups of snap application are not faster on my system.

My personal view on the end-user's benefits of snap is related only to system security (no sudo required to install, limited runtime permissions). So if you're running a personal system at low risk, I'd stick to ppa's. In such cases the enhanced security is not worth the cost of much worse performance in the present-day snaps.

mss
  • 461
  • 1
    Worth mentioning that snaps are slower on first run as they need to be setup (e.g. fonts, themes etc). Also there have been more recent startup speed improvements: https://snapcraft.io/blog/snap-startup-time-improvements – Pierz Jul 27 '21 at 14:02
15

Canonical says...

Snaps work on any distribution or device. Snaps are faster to install, easier to create, safer to run, and they update automatically and transactionally so your app is always fresh and never broken.

I also prefer apt to manage my package on ubuntu but if you are in another ditribution, you maybe want to install something that isn't available in distribution's package manager but maybe is available in snap. Canonical wants to "replace" apt with snap because they think that snap is more stable and it's easier for the developers to create the package.

Snaps are a lot safer! The snaps you install are installed in defferent volume in your hard drive. You can manage the permissions of the app like you do on Android 6.0 and later. You can block apps of using your camera or microphone and access the files in your home directory.

Indeed there are some problems with theme compatibility but snaps are safer and give you access to packages in most distributions.

konmal88
  • 333
  • 2
    Thanks, but your answer doesn't address my question. I am very aware of Canonical's "official" explanation. What I specifically asked about in my question has to do with managing the non-advertised down-sides (as related to end-user experience" of using snaps). – LSharkey Jul 19 '18 at 22:26
10

I use snaps because they are frequently more up-to-date than the apt equivalents, which may be a year or more out of date. For some programs that don't change functionality often this is not an issue, but others have quick release schedules that add/remove lots of features.

Here are example cases I have personally run into.

  • A few years ago I wanted to do something with arduino and command line. The current version of arduino in apt is 1.0.5 from 2013, which is very out-of-date and missing the feature I needed. The current version on snap is 1.8.12 which is very recent.

  • The current version of blender is 2.79 in apt while it is 2.82 in snap. Blender users will know a lot changed in version 2.80.

  • The current version of pypy is 5.10.0 from around 2018 while the version is 7.3.0 in snap. pypy3 in particular has been in a lot of development and the pypy team makes many improvements each release.

  • The current version of gimp is 2.8.22 in apt and 2.10.18 in snap. The UI changed a bunch and the startup time got a lot faster.

As you can see, there are many cases for end-users like me for which being up-to-date does matter a lot.

qwr
  • 2,802
  • 2
    If uptodate is importante, why not install from source into / usr/local? – kjetil b halvorsen Sep 02 '20 at 21:40
  • 2
    @kjetilbhalvorsen snap has a package updating mechanism to keep it up to date. and sometimes I just do not want to mess with compilation. – qwr Sep 02 '20 at 23:22
  • 2
    This argument does not necessarily and inherently hold. Look at pdftk, for instance. To date, the terminal will propose 2 options: snap (version 2.02) and apt (3.0.9). – kdarras Dec 12 '20 at 07:36
  • @kdarras of course not. I am just explaining my particular usecases. – qwr Dec 12 '20 at 09:02