Hacker News new | ask | show | jobs
by mmarx 1095 days ago
I guess it should rather say that NixOS provides 1 and 2, since I don't see how it would be ABI compatible to a major distribution.
2 comments

With FHS I'd say it does 3 also.
FHS makes it more similar, but not compatible.

I'll quote from my blog post linked above:

> Different distributions make different choices, and therefore they are closely related operating systems, but not a single OS. Even Linux syscall interface subtly changes from distribution to distribution, as they pick and choose options to build their kernels.

> Every niche Linux distribution that does not follow the interface of a larger one is a unique OS, closely related but not compatible with other Linux OSes. This means the applications have to be ported.

> Application developers have to choose what targets their applications support. With Linux distributions being just a blip on the graph of operating systems popularity, the application developers may not invest significant amount of resources into porting and testing.

Basically, NixOS = zero QA effort from application developer -> nothing works.

That's just not true. Nixpkgs has the largest package database of any distribution. It contains many closed source application that work flawlessly. Hell I can even run Vivado or Quartus on it which are two of the worst of the worst proprietary pieces of software on it. I also have packaged proprietary libraries for hardware we use at my company with no issues.
It is answered at the end of my blog post:

> I don’t care about anything that’s not packaged by the distribution

> This is totally fine. Just note that you are using a niche OS with a limited set of applications available.

Yes, Nixpkgs is large, but it does not package every piece of software out there, and you either at mercy of distribution maintainers to keep it packaged, or do it yourself. There is no way to disintermediate you and application developers.

The point is that with NixOS you are in a much better boat then all other distributions. Because the chances that an application is working on NixOS compared to $insert_distribution_here is much higher. I do agree that windows/OSX are superior here.
Than all other _niche_ distributions. But that's not a very high baseline. I'd say it's abysmally low baseline.

When I was using NixOS I regularely saw software that was tested on Ubuntu and Fedora and had installation instructions for these two distros, but was missing from Nixpkgs (because it was experimental, new or very obscure), and didn't work out of the box with NixOS' FHS.

Almost -- it's not quite as bad as you'd expect, because nixpkgs has packages for quite a lot of closed-source software, with whatever hacks are required to make it work.
I tried NixOS and dropped it after spending several hours trying to make an experimental FPGA compiler work. The instructions were reasonable, but they expected to have a classic Linux distro: Fedora or Debian-like.

I don't remember the exact set of errors (there was more than one), but NixOS+FHS failed so many times I gave up, and wrote that blog post.

This is the essence: you can't expect application developers to target your niche distro.

Yeah, I get your point, but was responding to this:

> Basically, NixOS = zero QA effort from application developer -> nothing works.

"zero QA effort from application developer" does not imply that "nothing works" if the distro and community put in the effort instead.

This was an exaggeration, I admit.

Nevertheless community of NixOS developers is many magnitudes smaller than the amount of developers churning out new software, hence once you get off the golden path of the widely or somewhat widely software, the probability of a random thing working without additional elbow grease from the one who tries to use it is indistinguishable from 0, due to NixOS' dialect of Linux not being perfectly compatible with other dialects.

At the very least, documentation for the random thing will never tell you what to do under NixOS, and documentation is very much the part of the software product.

It is answered at the end of my blog post:

> I don’t care about anything that’s not packaged by the distribution

> This is totally fine. Just note that you are using a niche OS with a limited set of applications available.

Even though in case of Nixpkgs "a limited set" is quite large, it does not include every application imaginable.

Ah, fair enough, though it feels a bit like stretching the definition.
Yes, that's what I meant.