4 ms·
You can pass X as much as you like, but Nix, like anything else, can be configured with dynamic references. Nix is also not related to Docker (neither superior
by oneplane 3y ago
You can pass X as much as you like, but Nix, like anything else, can be configured with dynamic references. Nix is also not related to Docker (neither superior nor inferior), and the learning curve makes it unsuitable for everything where Docker and Vagrant are suitable, even if it would technically do the same thing.
Either way, you are missing the point: the problem here isn't having perfect reproduction. It's about having an environment you can learn in without having to worry about breaking things. That's why the author references vagrant since it's about as low a barrier to entry as disposable environments can be (and even still a barrier to high for some).
- kreetx 3y agoI think it's you who is missing the point: the learning environment won't build as neither docker nor vagrant will give you reproducible environments, while nix will. Sure, you can make your nix environments dynamic too, but having determinism is its core feature. I don't think it is with docker nor vagrant, as the environment you get will be isolated, but not deterministic. You can, of course bolt some custom thing on top of those (or use nix), but that is going to be a pain. EDIT: Both vagrant and docker are useful tools, it's just that for creating any dev environments nix will be better due to determinism.
- oneplane 3y agoThe point is, and always was: someone wants a box to experiment in. Nix is not that box. It was never the box. It will never be the box. That is the point I am making and reflects the point the author was making. And just in case there is a language barrier: box does not refer to a specific technical implementation of a box, it's just a term to denote a border between the user's system (which they don't want to break) and "something else". Edit: and just in case the word 'someone' trips over a language barrier, I'm not referring to 'anyone' but to the persona (the 'someone') who might want to try something out because they saw something and thought it was cool. Not someone with package manager experience, not a software engineer, not a sysadmin. We're also not 'building a learning environment'. Learning environment is a proxy for disposable environment, which as a relatively simple concept is already a step too far for the average "how do I become a cool hacker like on TV" case (which is where the unreasonable effectiveness from the title comes in) where someone might take their first steps and wanting to try something out without breaking their current environment.
- kreetx 3y agoRight, but isn't the feature you want in a disposable environment is that it builds? Determinism guarantees that, but isolation doesn't.
- oneplane 3y agoNot in this case. In this case we want a general computer user to perform an action to have a 'computer in a box' that they can break with no consequences with a very low barrier to entry. And we want that action to be easy to share.
- kreetx 3y agoWell, nix gives you that too, plus determinism.
- oneplane 3y agoNix also gives you (not me, just in case you are going to assume that) a headache, which is why it's not getting the adoption that everything else does get. Nix is the betamax of state managers.
- kreetx 3y agoDocker gives you the headache of not actually giving you reproducibility. If you haven't been bitten by it then I don't think you have tried. For popularity, I wouldn't actually mind if nix weren't all that popular, but it may just have the largest number of packages available for install for any package manager.
- oneplane 3y agoI haven't heard of anything getting a Docker-related headache because it delegates reproducibility to whatever tools you pick. We haven't been bitten by it, and you might think I have not tried, but you'd be wrong and making some odd assumptions. Perhaps I can assume that you have only used nix personally or at a small company?
- k8svet 3y ago> but Nix, like anything else, can be configured with dynamic references. Tell me you don't know what you're talking about, without telling me you don't know what you're talking about. If you can do this, with flakes, or in pure-eval mode, it's a stop-everything bug in Nix. Also "Nix isn't the box" again betrays how little you know about Nix. I can take a Nix program and package it into a VM or OCI with literally zero effort. Similarly I can transform any NixOS configuration into a VM for literally any platform I can image, similarly trivially. Like, I literally can type a single command and boot my current machine configuration in a completely disposable VM. I can trivially build any rev of my machine over the past 3 years and get an *IDENTICAL* nearly bit-for-bit replica of that machine from any point in time.
- oneplane 3y agoYou can do all of that with any programming language, that is not a special trait of Nix. Your lack of insight into what people actually want betrays your need to promote nix. You can also use nix to automatically make sure that you install the latest version of something, and that means that if you rebuild at different times you get different results. That is working as intended, but having looked around this is because we use niv everywhere because we really don't want to waste time on manual version management, that's what computers are for. Edit: come to think of it, this is probably why we stopped using nix for new projects. Having to wrap nix a lot to make it work with reality makes it a bit pointless. Anyway, Nix isn't the box, and it still will never be the box. It doesn't matter that it could be the box, because the people that want the box are not the people that can utilise nix. This Venn diagram just doesn't intersect. As for your insistence that it's bit for bit guaranteed: you do really think that anyone in the world who is just looking for a box gives a crap? It doesn't matter how deterministic it is, or how nix does it better than anything else, because the entire factor of determinism doesn't matter in this case.
- kreetx 3y agoI'm sorry to hear that you've had a bad experience with it, it does take a while to get used to. I guess there is still much UX work to be done there.