Nix vs Puppy Linux
When comparing Nix vs Puppy Linux, the Slant community recommends Puppy Linux for most people. In the question“What are the best Linux distributions for desktops?” Puppy Linux is ranked 10th while Nix is ranked 75th. The most important reason people chose Puppy Linux is:
Puppy Linux requires 128MB of RAM and 333Mhz of CPU, although 256MB of RAM is recommended.
Ranked in these QuestionsQuestion Ranking
Pros
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.
Pro Isolated development environments
Nix allows the creation of project-specific shell and build environments which are isolated from the rest of the system. These environments are defined declaratively to ensure reproducibility.
Pro Can replace docker in some places
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 The configuration works on "All machines"
No more of the traditional: "it works on my machine". When it says reproducible, this is the real deal.
Pro Extremely low minimum system requirements
Puppy Linux requires 128MB of RAM and 333Mhz of CPU, although 256MB of RAM is recommended.
Pro The whole OS runs off of RAM
Since Puppy Linux is completely loaded and run off of RAM instead of HDD, it's read/write speed is not a factor.
Pro Designed to run as a live USB/CD
A portable version, that can be carried on a thumb drive without requiring installation, weighs less than 100MB; a Live CD - less than 150MB. You can even save your settings and files for Puppy on the external device/media.
Running off a live CD also has security benefits, as your system will reset to the known config after each boot.
Pro Different distro based versions available
Puppy Linux offers a few different releases.
The first is an Ubuntu based release called Tahrpup, by using this version the user is able to take advantage of all software and support from Ubuntu.
The second version is called Slacko, which is built upon the Slackware binaries.
The third is called Wary and it is built to support older hardware than the rest.
And the fourth is called Quirky, which is used as a base to explore new ideas.
Pro Linux distro designed for this exact purpose
Pro Offers a long term support release
Puppy Linux offers an LTS release called Precise.
Pro It can be the only distro that works
Sometimes, Puppy Linux is the only distro that works on an old machine: all other distros are more demanding.
Pro JWM used as window manager
JWM is a low resource window manager that is used in most Puppy Linux installs.
Cons
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.
Con Steep learning curve
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 Feels slightly over-complicated
Con A bit ugly
Using puppy makes you feel like you just jumped 20 years into the past. Being that the purpose of Puppy Linux is to run or really low resource machines the software used is often on the older side, which is precisely why it has a 20 year old look.
Con Not as light as it used to be
It's light, but not as light as it was 1-2 years ago.
Con Smallest software library ever
You can barely find any precompiled packages for Puppy.
Con No built in compositing
Being a low resource distro there is zero built in compositing for the JWM window manager. Though one can be added through a bit of work.