Why does the approach of NixOS cannot be used in FreeBSD software management?
...NixOS ... is built from the ground up specifically for this one feature.
To really emphasize this: the NixOS Linux distribution was created for one purpose only--as an experiment for the founder's PhD thesis. The entire OS is built around a package management system that absolutely nobody else uses, and maintaining the distribution means having a group of people dedicated to building and maintaining several versions of every single package available, while requiring users to frequently tweak and pick at various configurations and individual parts of the system (including the "base system") to maintain system integrity. NixOS has been around for roughly a decade, and virtually nobody has heard of it. It isn't used in any critical/professional setting--while I don't doubt that it's possible to use NixOS as a personal production system, and that some of its dedicated users do so, it quite simply has always been a novelty.
I've got no problem with the ports and package management systems undergoing some refinement, and I'd bet no-one else really does either. But it would have to be something that is both manageable and arguably and demonstrably better than what already exists. I think there's one thing that really,
really needs to be stated here: there are indeed other Unix-like systems (namely, Linux distributions such as Gentoo, Arch, NixOS, and CRUX) that allow users to install and individually update multiple versions of a single port/package. But these package management systems require a greater degree of hands-on system maintenance. They do not make anything more convenient, and
they absolutely do not make anything more "stable". They increase system complexity, making things less convenient and (at least arguably) less stable. There's a weird trade-off involved, whereby you don't merely always have access to the latest packages, but must in fact frequently update to avoid problems. Update too frequently, and you risk running into previously undiscovered bugs (since you're among the first users to install the new package); don't update frequently enough, and one large update later on is more likely to break your installation. As a former Arch Linux user, I can say that:
- if every time you install a new package in Arch, you're expected to completely update every other package simultaneously;
- if you break your Arch system by updating individual packages you won't get any sympathy or help from the community; and
- the common wisdom in the Arch community is that if you go more than six weeks or so without completely updating every package on your system, it's recommended to just perform a clean install.
The fact that FreeBSD has managed to deftly avoid this kind of conundrum and find something in the middle--access to the latest software, but only when you want it--is the primary reason I switched to it from Arch. Unfortunately, this means either tracking one package repository and waiting for version bumps, or building everything from source. Personally, I can live with either.