Home About

Why I Think Snap is Terrible

#snap #linux #ubuntu #debian
~4 min read by Christian Lehnert, 2024-10-23

If you’ve been tinkering with Linux long enough, especially if you’re a die-hard Debian fan like me, you’ve probably felt that wrenching mix of nostalgia and frustration watching Ubuntu push Snap on us like the gospel truth. Snap, Canonical’s pet project, was supposed to be this shiny new package system that “solves” all the woes of software distribution. But after years of use and a lot of gritting my teeth. I’m convinced it’s a festering example of what happens when corporate priorities clash headfirst with open-source sensibilities.

The Bloatware of the Linux World

Remember when installing software was straightforward? Download a .deb, run dpkg -i, and voilà: clean, fast, predictable installs. Enter Snap, and everything changes. Want a simple app? Prepare for a download that’s suspiciously hundreds of megabytes large. Why? Because Snap bundles redundant libraries and dependencies, packaging everything into one fat container. This ensures version consistency, sure. But at what cost?

We’re talking about storage waste that would make any tidy Debian user cringe. Your df -h output is cluttered with mysterious mounts everywhere, because Snap isn’t just a package. it’s a mini virtual machine. It launches sluggishly too; the “sandboxed” environment means apps take noticeably longer to open compared to the snappy responsiveness native deb packages offer.

And that sandboxing? Don’t get me started. Snap enforces a weird, overly strict confinement model that often feels like it’s punishing your apps for daring to interact normally with the rest of your system. Home directory restrictions, blocked file system access, and quirky permission dialogs. I never knew opening a text editor should feel this labyrinthine.

APT vs Snap

APT, our stalwart Debian package manager, embodies Unix philosophy: simple, modular, and efficient. It reuses libraries elegantly instead of duplicating them into every app bundle. It encourages transparency and adheres to the principle of least surprise. Need to upgrade? APT’s dependency resolution is rock solid and respectful of system stability. No unnecessary sandbox layers choking your resources.

Contrast that with Snap’s heavy-handed approach, and you start to see why many long-time Debian users view Snap as the antithesis of what we value: efficiency, stability, and respect for user choice.

The Centralization Conundrum

Beyond technical grumbles lies a bigger philosophical clash. Debian is built on openness, free choice, and community-driven development. Snap smacks of corporate lock-in, pushing users toward Canonical’s centralized Snap Store like it’s the only game in town. The ecosystem around it is tightly controlled and closed compared to the open repositories Debian users swear by.

This mirrors the broader tension with Ubuntu’s approach trying to funnel users into their walls instead of empowering them to pick and choose freely. If we want a modern universal package format, why not Flatpak, which at least tries to be distribution-agnostic and foster a more open ecosystem? Snap’s closed nature flies in the face of the values that built the Debian community in the first place.

Some other Snap shit

All these issues aren’t theoretical. They translate to a daily user experience that feels clunky, inefficient, and frankly unnecessary if you ask me.

Long Live Debian’s Spirit of Freedom

I’m a fan of progress, innovation, and yes, convenience. But not at the cost of locking down what should be an open, transparent, and efficient operating system. Snap may have its uses, but from the Debian side of the fence, it feels like a step backward, a corporate straitjacket trying to impose itself where a community-driven, cleanly engineered solution thrived for decades.

For anyone who cherishes the artisan craftsmanship of Debian’s APT system, Snap is a headache wrapped in shiny marketing gloss. Here’s hoping more folks keep championing open standards and push back against this creeping centralization.