When comparing Flatpak vs GNU Guix, the Slant community recommends GNU Guix for most people. In the question“What are the best Linux package managers?” GNU Guix is ranked 12th while Flatpak is ranked 18th. The most important reason people chose GNU Guix is:
A method which works across languages and provides a reproducible programming environment.
Specs
Ranked in these QuestionsQuestion Ranking
Pros
Pro Cross-distribution
You can install flatpak packages on any distro you want.
Pro fast
searching, installing and updating are faster than others in my experience
Pro Doesn't bog system down like snaps.
Plus it's not proprietary.
Pro Application sandboxing
All applications are limited to a set of predefined permissions, enhancing privacy and security.
Pro A well-written documentation
Pro Flexible runtime management
You can install a lot of runtimes for different apps, making applications a lot more compatible while still allowing some applications to share their runtimes.
Pro Can setup a shell which has exactly the defined libraries available
A method which works across languages and provides a reproducible programming environment.
Pro Can always roll back to a safe state
Guix creates new profile generations for each operation. If anything goes wrong, a simple --roll-back gets you immediately back to the previous, working, generation. Because it is a purely functional package management system, generations don't affect each other, so you're back to the exact same state as before : still working.
Pro Can create independent packages
Guix pack creates packages which do not need Guix to be run.
Pro No side effects when building packages
Guix is a purely functional package management system. This means that the act of building a package does not have side effects, such as destructively updating or deleting files that may be used by other packages.
Pro Can build containers right-away, from docker to tarballs
See guix pack --help and here.
Pro Easy to add your own packages
The clean and declarative syntax makes it easy to define new packages by using an existing one as an example.
Pro Doesn't require root privileges
Normal users can install packages on a Guix-enabled system, or even run their own Guix instance if the system isn't Guix-enabled.
Cons
Con Bloated
Due to the way Flatpack handles packaging, this can lead to a large cache being created which quickly inflates to unreasonable sizes. Not only this, but using flatpack requires a large chunk of space to be reserved for it's own file hierarchy.
Con Difficult to export packages
It is difficult and convoluted to export installed packages and move to another system.
Con Doesn't work well with CLI programs
Invoking CLI programs can be a pain. From the weird reverse DNS package names to difficulty in easily managing container environment.
Con Updates take a long time
It's gotten better over time but both updating Guix itself and updating the installed packages can take a long time.
Con Cannot handle filetypes that have different semantics across different versions
While the functional approach that Guix takes is great for sandboxing binary artifacts of packages, it seriously lacks any power in handling configuration files or user data. It's difficult to upgrade and downgrade files where semantics and syntax can change between versions.