NT isn't terrible with some very well designed systems, that is quite true. It is however good for a completely different list of reasons that *nix is. Trying to conflate the two is a pottering's errand.
NT was able to use a simpler (maybe not simple, but simpler) design because it was written from scratch once we knew that caches and buffers were desirable. So it's got a unification of swap and cache that would be difficult to retrofit onto *nix.
It's a different approach. That's basically an implementation using ostree. Nix is way different than that. Neither is better in my opinion, but I use Nix happily.
I never implied nix needed anything quite the opposite, it was somehow from-scratch thinking, on the other systems were more inspired by new linux features to solve a slightly similar issue.
It looks like distri have very different design goals from Nix with an emphasis on speed rather than rock solid reproducibility. Although some of the key details do seem to be inspired by Nix, that's no reason to discourage experimentation by calling it a travesty.
Well, Nix mostly solves that issue so well due to a continuous massive offering of blood and sweat though, let's not kid ourselves. It's a significant amount of work to package arbitrary software because arbitrary software does weird and bizarre things.
But IMO the fundamental principles underlying the design are sound and granular compared to most of the alternatives, though, that's for sure.
I use Nix every day. I love it, but I'd be lying if I claimed it things less complex. I don't think that is very controversial. To build software using Nix you still need to understand how that software builds without Nix plus you need to know some amount of Nix. If the abstraction was airtight, then I'd agree, but currently, it is a very leaky abstraction. But that doesn't mean it's bad, just a trade-off to consider.
I’m not sure this is a good comparison. Nix competes with a ton of other os, most of whom are established. If you had only nix, which most people agree is generally an excellent Unix distribution if a bit opaque, you would have an excellent Unix distribution that wouldn’t be opaque any more because everyone knows how to use it. The lack of choice in transit system labeling allows you to choose something that has a higher initial cognitive load but has a lower amortized load and/or provides superior information etc simply because people have no choice but climb the learning curve. And once it’s become part of a regional culture it ceases to have a learning curve at all and is simply superior to the alternatives (like nix)
For me, nix the language itself is not that bad. It's all the magic happening in nixpkgs and the tight coupling there with the user interface (configuration.nix, shell.nix, etc.).
In NixOS/nix, you are essentially extending the nixpkgs source code with your own configuration to build a system, which requires good familiarity with the source. This would be like having to write C code to install packages on another OS. It's a questionable design choice but it does offer a lot of power.
I've had the displeasure of being forced to use nix and to me it seems like an overengineered piece of garbage. I don't see why anyone should use this vs competitors
I agree actually, you describe the issues I've had with nix quite head on. I've not ran into such issues every single time i try it, but I have hit upon a good deal of issues of the kind you describe. Nix is by no means perfect, and if I was smarter I'd try to remake it with a stronger type system, but the basic premise is useful enough on it's own to warrant usage IMO
As a huge Nix fan, I think it's perfectly acceptable to say non-linux package management is an abomination, linux package management is a mess, and nix is not (yet :)) ideal.
Engineers shouldn't assume something is done well because nobody is doing any better. Some things suck and there's nothing to blame but other priorities or sheer laziness.
Yeah, problem with nix is that it's different. The nix language is a lazy-functional DSL, which takes a bit of effort to learn.
The thing is, "better" does imply "different." The syntax is weird and difficult, but it's the linchpin of the whole system. It's much, much better than your typical packaging system and worth the effort to learn it.
reply