The future of Linux desktop application delivery is Flatpak and Snap

GNOME, KDE, and Linux desktop developers all agree Flatpak and Snap are the future of Linux desktop application delivery.
Written by Steven Vaughan-Nichols, Senior Contributing Editor

Once upon a time, GNOME and KDE got along like cats and dogs. That was then. This is now. At Linux Application Summit (LAS) in Barcelona, the two, along with other desktop developers, came together to make the Linux desktop a friendlier place for all users. A big way developers will do that is by using Snap and Flatpak to deliver programs.

As Rob McQueen, a GNOME board member, said on a panel:

"We're all motivated by the same thing. We're all lovers of the free desktop." Specifically, for apps, "We both agree that this is a bottleneck in getting people to engage with the Linux desktop. It made perfect sense to look for something bigger than our desktop to pull together on the Linux desktop. Alex Pol, KDE's president, agreed. "We're making something that will get bigger over time, which will let people do what they want to do with a desktop."

One problem both are addressing is how to make it easier for independent software vendors (ISVs) to deliver programs to Linux users. Until recently, you had to hand-craft Linux desktop programs to each specific distro and its various releases. Needless to say, most ISVs didn't want to go to the trouble. As NextCloud founder and former KDE board member Frank Karlitschek said at LAS, because it's hard for ISVs to make Linux desktop programs, there are only four or five-hundred Linux apps compared to tens of thousands on MacOS and Windows.

The answer, which was discussed in detail at LAS, was to replace traditional ways of delivering Linux desktop apps such as DEB and RPM package management systems, for the Debian and Red Hat Linux families with containerized packages. In particular, Snap and Flatpak. There are other new-model program packaging systems, notably AppImage, but LAS attendees didn't pay them much attention.

The point of both is to make life easier for desktop developers. Alexander Larsson, Flatpak's founder, explained: "[It's] mostly for app developers, but users get to take advantage of it. It makes it easier for developers to ship apps to users." Flatpak works well by design with both GNOME and KDE.  

On the other hand, Snaps were originally meant for the now-discontinued Ubuntu Touch smartphone system or for IoT devices. It was meant to make it easy to drag, drop, and replace embedded programs. Then, Alan Pope, Canonical's community manager for Ubuntu engineering services, said, "We realized it would work well for delivering desktop apps as well. You can snap install Node.JS and be ready to create JavaScript applications." Like Flatpack, "It's more about empowering developers to get their packages into users hands very fast. They don't need to worry about the distribution."

Applications delivered by either run in a virtual sandbox. This makes them safer to use. They can also run on any desktop distro. Neither users nor ISVs have to worry about the underlying distro or its version because all the needed components for the application come already bundled.  

Both also make it easy for users to have the latest version of their favorite programs. As Pope said, "It's like on my Android phone. I want the latest version of Spotify and the same goes for my desktop. … Users don't want a gatekeeping distro holding back the latest updates."

Flatpak comes from Red Hat, Endless Computers, and Collabora developers. To get Flatpak apps, you need to go to Flathub. This is the official repository of all Flatpak application packages.  

Snap was created by Canonical, which still keeps a firm grip on the server-side of its ecosystem. For snapped applications, you need to go to the Snapstore.

Both are widely supported on Linux desktop distributions. Indeed, Endless OS and Fedora Silverblue rely entirely on Flatpak for application distribution. Both have also been criticized for being too slow to launch, too memory hungry, and not secure enough. 

While you can argue over which one is better, the programmers at LAS seemed to be largely indifferent -- although most agreed with Karlitschek ("Why do we have two of these? Why can't we have one?").

Leaving that aside, it was crystal clear at LAS that these two will be the future of Linux application delivery. It just makes life so much easier for desktop application developers that there's no going back.  Will it be enough to make 2020 the year of the Linux desktop? That's another question. What is certain is that this new approach will make it much easier for ISVs to get more applications into Linux user hands. And, for Linux desktop fans, that's a good thing.

Related Stories:

Editorial standards