Thanks for Snap

(Maybe this is a bit OT here and I wouldn’t mind if a moderator decides to close it.)

I would like to say thank you for developing such a groundbreaking technology as Snap. Perhaps this is superfluous given that adoption from both users and developers is in a healthy state and so “revealed preferences” have already spoken by themselves, but as there are some negative feelings towards Snap in the most vocal segments of some communities I do want to say a few words on the contrary.

I remember having read Ingo Molnar seminal article (http://files.catwell.info/misc/mirror/ingo-molnar-what-ails-the-linux-desktop-2012-03-17.txt) before Snap and Flatpak were even things and felt dismay, that was the day when I realized how flawed was a distribution method that I (as many others) had come to like so much, because its many advantages are obvious prima facie while its disadvantages are more indirect, part of a process that involves the entire production chain and the incentives different stakeholders have under such a regime. I think it’s difficult to grasp this from a very user-centric perspective and I believe this is one reason for the adverse reaction we have seen against cointainerized, sandboxed solutions for the desktop. So when these technologies began to emerge I was quite aware of the problems they were trying to address and their downsides seemed worth to pay to me.

I now strongly believe that a hybrid approach with (i) point releases for the core system and (ii) the likes of Snap and Flatpak for the applications you do care to stay tuned and/or simplify the busy lives of developers, maintainers and distributors (and so indirectly of users, since ceteris paribus resources will be put to better use), is the model of distribution that makes most sense. Even for the desktop, which is still a fast moving target, cadence alignment means that six month point releases like Ubuntu’s and Fedora’s are providing desktops that are as fresh as they’re in Arch, at least for GNOME. Fortunately, this is the direction Ubuntu seems to be heading towards, so despite the rough edges of the transition I feel very optimistic overall.

Then there is the Snap vs Flatpak wars that I find specially ill-conceived (even for flame wars) since because of their very nature these are solutions than can live together as long as they both run on top of many different systems. Of course, there are duplication of efforts and cognitive overhead, but there may also be hidden costs in suppressing this hopefully amicable competition. Anyway, Snap covers some use cases like non-GUI/desktop apps that are very important to Canonical business but, and IMO this has not been stressed enough, are also important to desktop users. For example, I’m a developer and it would be great to download, say, a working Cassandra Snap with the right JVM version and all batteries included, much like the Docker image I’m using now. Or even the latest version of smaller CLI utilities, why not? (and the slowness argument doesn’t hold water, yeah the first launch is a bit slow, but then there is no noticeable delay).

I want to make clear that I’m no fanboy, I’m even choosing debs from PPAs over snaps in many cases, but in general this is because of less than perfect packaging from upstream or maybe because of temporary limitations but to be clear: all are little inconveniences due to a transitional situation, nothing inherent to the technology which is already providing a 99.999% functional alternative with many many advantages that have already been extensively noted elsewhere. I’m already at a turning point where the inconvenience of having to postpone upgrades for a month or two in order not to break my external, third-party repos is weighing as much as the little drawbacks of some existing snaps.

So a big thank you and kudos to the Snap developers, I believe you are helping to solve a serious problem that has been endemic to the traditional Linux distribution model for so long that it has alienated major software from our beloved platform.

15 Likes

Here is another real life example. This morning I was talking to a friend of mine, she uses Bioconductor packages for R in her work and she was on Ubuntu 18.04 until recently but had to update to 20.04 in order to get a newer R version that she needed. She said she was very happy (“me re gusta”) with 20.04 but she is more of an “if it ain’t broke, don’t fix it” person and I know she would have stayed on 18.04 for longer if it weren’t for this fact. Neither she is the kind of person that will compile and stow her own version, she doesn’t like to tweak, she is very focused on her own work for that. Here an R Snap would surely have helped.

1 Like

there are a few attempts for snapping R …

https://github.com/eddelbuettel/snap-r-base

and

neither of them seems to have made it to the store yet though …

1 Like

Oh there are already some official R repositories:
https://cran.r-project.org/bin/linux/ubuntu/README.html
so you can install R 3.6 in Bionic, or R 4.0 in Bionic and Focal.

Thank you, I was expecting something like that, maybe a PPA, but it’s not really the point I’m trying to make, you know, it’s not that there aren’t options (and in this case upgrading was easy anyway) but that it’s a heavy burden having to maintain them for so many overlapping versions (not to mention other distros). And then when you upgrade something gets broken because of some external repo that hasn’t been updated yet. A lot of Linux users are willing to deal with that stuff, but it’s not for everyone and it’s costly.

2 Likes

I use a ton of commercial apps that otherwise I’d have to track down and install by hand from tarballs and other equally unsavoury means. Stuff like Jetbrains IDEs, kubectl, discord. The first startup problem (slowness) still needs fixing and is a little annoying, but it’s by no means a deal breaker.

3 Likes