When comparing DPKG family (apt, aptitude, synaptic) vs Nix, the Slant community recommends Nix for most people. In the question“What are the best Linux package managers?” Nix is ranked 2nd while DPKG family (apt, aptitude, synaptic) is ranked 3rd. The most important reason people chose Nix is:
Because of the functional approach it takes, Nix makes it easy for systems to use multiple versions of the same package simultaneously, and ensure that updating or removing a package can't break other packages.
Ranked in these QuestionsQuestion Ranking
Pros
Pro De facto package manager
One of the biggest pluses of APT is the vast majority of software applications available for it. It's often referred as the 'de facto package manager' because most websites that offer software automatically package them in Deb format.
Pro Supports searching for packages
If you are not sure about the name of the package you are looking to install, you can easily search for it using the search function provided by the apt tools: apt-cache search $search_term
Pro Tab-completion of package names
By pressing <Tab> when writing a package name, for example sudo apt-get install ge<Tab>
it will be autocompleted by apt: sudo apt-get install gedit
.
Though it's worth noting that to activate this feature in Ubuntu you need to edit the /etc/bash.bashrc
file and remove the comments from these lines:
# enable bash completion in interactive shells
#if ! shopt -oq posix; then
# if [ -f /usr/share/bash-completion/bash_completion ]; then
# . /usr/share/bash-completion/bash_completion
# elif [ -f /etc/bash_completion ]; then
# . /etc/bash_completion
# fi
#fi
Pro Synaptic finds all dependencies reliably
It's search is as simple or as detailed as you like, adding "Fixing" "Broken" "Upgradeable" the list goes on. Also manages PPA's on other software sources smartly.
Pro Excellent GUI in Synaptic Package Manager
The graphical embodiment of apt in synaptic package manager is excellent.
Pro Can use multiple versions of the same package
Because of the functional approach it takes, Nix makes it easy for systems to use multiple versions of the same package simultaneously, and ensure that updating or removing a package can't break other packages.
Pro No side effects when building packages
Nix 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.
Cons
Con Suboptimal dependency resolution
Apt has only a rather simple heuristic based resolver that can result in users getting package blockages when putting individual packages on hold.
Con Slow
Compared to many package managers, Apt is a very slow experience. From fetching packages, to caching them, to actually installing them, (and all the steps between).

Con Heavy for single-package repositories first install
Trusted source repositories are great (designed) for distributing large batches of interconnected software and updates. But, Trusted repositories are often used as the preferred way to distribute single 3rd party packages (and future updates), with the mandatory step of updating the entire software cache/dep-tree. These updates may be lengthy and therefore annoying for single package installation use. Notably, this annoyance can be avoided by the developer; One such example is the google-chrome deb package which updates you're trusted repertories as a post install step, though this is less transparent which can be it's own annoyance.
Con Counterintuitive CLI
For installing and removing you have "apt-get", for searching "apt-cache", for listing "dpkg". "dpkg" uses only switches whereas "apt-*" also commands, ... At least there is this "aptitude" frontend, but that's not a standard tool.
Con Very complicated and redundant packaging process
Filling out all requirements for .deb creation is such a pain that a lot of developers resort to packaging .deb files manually, because official packaging tools are too strict.
Con Lack of sanity checks.
One thing that apt appears to lack is transaction tests and post-install verification. Coupled with the aforementioned poor dependency resolver, this can lead to deep headaches.
Con Highly unreliable
"You may have held broken packages"...
Con Cannot handle filetypes that have different semantics across different versions
While the functional approach that Nix 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. Especially in Debian/Ubuntu it can cause severe problems where the upgrade process blocks and the user needs to resolve the 3-way merge.
Con Does not work well for services on non-NixOS systems
When using Nix with anything other than NixOS you can run into difficulties with trying to start up services. For example, you can install docker with Nix, but it won't integrate with the host system's systemd leaving you to handcraft awkward workarounds in order to start the background service that docker requires. This seems like a critical flaw when using Nix on anything that is not NixOS, and it's unfortunate because this affects many of the packages many users would be most interested in using Nix to handle.