I find android way much simpler. On android every app has its own data and app directories, and you can uninstall, clear data or clear cache of apps safely. I know this method doesn't work out of the box with traditional desktop software that assumes a Unix like filesystem hierarchy. But Nix doesn't work out-of-the-box as well. I would be interested to know what other advantages Nix / GUIX bring in practical terms.
Nix is far more than just an app with its own directory (Which is also the flatpack & snap approach):
A little not exhaustive list of features that Nix provides:
- Not only an 'app installer'. It is a fully feature functional build system where reproducible builds are guaranteed (This is unique with GUIX up to my knowledge) on any linux distribution. Safe-reliable distributed builds are also possible.
- Fine grain de-duplication of dependencies (libraries, frameworks) to save disk space
- Safe, unprivileged installation of binaries in a multi-user environment on a single machine.
- Atomic upgrade and rollback
- Allow multiple variations of the same package with different options & versions installed in parallel without any risk of conflict
- Solves definitively all ABI breaks problem you encounter on traditional package manager, even with shared library.