Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

The thing is, old ways didn't have to be contraptions at all. If we had to run many services on a system, we instead ran BSD with jails, or if we have to run Linux, with chroots.

These solutions, abstracted the convoluted solutions away. Who didn't want to form these solutions themselves (which is fair, because it needs intricate knowledge about close-to-OS stuff) built "contraptions" instead.

The core solutions to core problems didn't change at all. We sometimes use the more modern approaches, because we feel lazy sometimes.



Nix does not solve the problem of "running things in a chroot." It solves the problem of having to reliably and consistently build software in a repeatable, reproducible, programmable way, up-to and including all the fundamental system components, and it offers thousands and thousands of packages in order to make that usable for typical modern workflows. To a first approximation, this problem is about 10,000 times harder to solve than just "using chroot."

It's like the difference between building a single building and building an entire city, in terms of scale and total effort. That's why it's taken Nix nearly 20 years to get where it is.

> We sometimes use the more modern approaches, because we feel lazy sometimes.

No, we often use them because they are actually materially better. And Nix is vastly better than all the prior attempts at this problem. If you didn't have those problems or don't think you did, that's fine. But it's got nothing to do with "laziness" whatever that means. It's got everything to do with the results. And the results are ultimately quite good.


At some point you will want to manage your own software supply chain. A C++ compiler is the bare minimum, but then you'll surely want a Python environment too, and of course some npm packages for the frontend. Then you'll want some cross-compilation - for the new ARM processors, or maybe you want a different libc. After that you need caching and remote builds, because build times are a pain in the ass.

Here you come to realize that Nix already comes with all that out of the box, with some minimal tweaking.

Jails/chroots/containers are an orthogonal thing, though often whatever comes out of your software supply chain you'd want to run containerized too.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: