4 ms·
Can you TL;DR the reason that snap is so terrible? I'm a casual Ubuntu user and never really had any issue with it (that I know of). The disdain for snap is fai
by luckman212 4y ago
Can you TL;DR the reason that snap is so terrible? I'm a casual Ubuntu user and never really had any issue with it (that I know of). The disdain for snap is fairly pervasive here on HN, so I'm genuinely curious.
- PebblesHD 4y agoAmong several other less obvious ones, the unavoidable automatic updates were what finally pushed me to disable it, especially with bits of software that introduced breaking changes between versions that are now much harder to roll back and prevent a roll forward. For reasons I don’t fully understand, they’re also quite slow to launch compared to equivalent ‘natively’ installed packages.
- tssva 4y agoThe main arguments against them I have seen are: - Slow snap startup time - Pollution of home directory with snap directory - Automatic updates which can't be disabled - No support for 3rd party repositories
- ss108 4y agoWhy wouldn't I want automatic updates?
- Spooky23 4y agoShit breaks on upgrades sometimes.
- synicalx 4y agoI had a VPN app distributed as a snap - one day it auto-updated and came with a huge memory leak. Apparently all the update did was adjust some functionality in the apps UI, so it was totally non-essential but it still installed itself and broke all my stuff for a day or two.
- ddoolin 4y agoUpdates often break things, especially in Linux land. I don't want things updating until I do it manually, when I've decided that I have time to sit down and possibly spend time fixing breakages.
- tssva 4y agoI run a lxd cluster in my home lab. At one point while I was away on vacation one of the nodes failed. Once I returned from vacation I fixed the hardware issue and brought the node back online. This caused the entire cluster to fail because also while I was gone unknown to me the lxd snap was auto-updated on the other nodes. The node I brought back up was therefore on a different version which lxd. lxd doesn't allow nodes running different versions and will shutdown the cluster if a all the nodes are not on the same version.
- marssaxman 4y agoQA is never perfect. Sometimes the new version breaks things, and you have to deal with it. With automatic updates, breakage happens randomly; with manual updates, potential breakage is limited to moments when you decide to accept the risk.
- bluefirebrand 4y agoReally, automatic updates? If people wanted automatic updates they'd just use Windows...
- fuzzfactor 4y agoTo quote much Microsoft documentation: "This is by design."
- throwaway67743 4y agoI'm no fan of snap but I do use snap on Arch and it's pretty simple - you limit snap to nonsense (in my case Spotify and slack for corporate im) you should never use it for anything important - I don't really notice the startup time difference but Ubuntu is wrappers upon wrappers so maybe it's just badly implemented in Ubuntu
- blagie 4y agoTL;DR: They help Ubuntu developers maintain short-term productivity, in return for bloat and a collapse of the system architecture. Longer version: 1) They encourage bad engineering Unix is based on designed, long-lived, standard APIs like POSIX, and it works really well. The "problem" Snap is intended to solve is the ability to pull a JavaScript, where APIs are completely reinvented every 18 months by having each component lives in an isolated space with its own libraries and subsystem. Debian worked perfectly fine 25 years ago, and for the most part, programs from then work fine today. A lot of us value that stability. If each program relies on different versions of libraries and APIs, you can no longer remix and mix-and-match pieces. I can't pull out a few functions from one program, a few from another, and use them together. Not needing to maintain backwards-compatibility or think through API design is a huge boost to short-term productivity, but leads to unmaintainable systems. That's true for a lot of the ways tools like Docker are used as well, for that matter. 2) They explode package sizes In the era of terabyte hard drives, blowing up a package from 50kB to 50MB might not seem like much, but it makes a huge difference. Debian and Ubuntu have thousands of packages. Things like download and install times make things like dev-ops (or just setting up systems) a pain. 3) They murder performance Again, this might not seem like much, but the end impact is that you can't use tools inside of loops or workflows since startup / shutdown / install time is up many-fold. Unix tools are designed to plug together. <100ms run times and small sizes means you can do that practically. 4) They discourage consistency and backwards-compatibility I learned to use Unix decades ago, and my child is learning to use Unix too. It's a bigger learning curve, but it's much less overall time than learning DOS, Windows 3.1, Windows 95, Windows NT, etc. Broken things are worth fixing. If something isn't broken, it's usually not worth replacing. In most cases, rewrites are easier than refactors or fixes, but tend to move things sideways, going backwards as often as forwards. That's especially true of things engineered to last versus thing hacked together in 6-month agile sprints. See second-system syndrome, and Joel's classic "Thing You Should Never Do, Part 1."
- luckman212 4y agoGreat explanation, thank you. Looks like I will be moving back to vanilla Debian. Also need to look into the differences between that and Pop!_OS.