top | item 30393433

(no title)

panta82 | 4 years ago

I'm sorry, I keep hearing about this thing, but it's just not solving any major problem I actually have in in programming or computer environment.

Non-reproducable environments are just not such a big issue that it's worth "radical rethinking" of everything to solve.

discuss

order

rgoulter|4 years ago

That's kinda fair, but I think it's worth keeping an eye on.

Nix is really good at "programmatic environment for managing packages". Which is excellent for devops. There are advantages for developers, too.. but, developers can get away with quicker + dirtier solutions a lot of the time.

e.g. Maybe your project assumes a specific version of Ruby or whatever. Nix can solve this in a nice way, but you can use Ruby version manager (or the general asdf). Want to install Python packages, without conflicting? Nix can solve this in a nice way, but you can use virtualenv. Build a container image? etc.

An example of "practically useful, which Nix can do, others can't" I've seen is "just run the code from some repository". The non-Nix equivalent I've seen is `docker run <some image for a CLI tool>`. Nix allows the same UX, but without relying on containers. -- I think that's something everyone could benefit from.

I think the benefits for developers are definitely there; the main downside is that compared to those "quick + dirty" solutions, anything off the happy-path with Nix is quite difficult.

panta82|4 years ago

I can see how it would be a good system for ruby or python packages, or a docker replacement.

But it seems it isn't able to blindly mirror stuff from pip, for example? Or to just package any linux under the sun, like Docker can? You'd have to have a nix-specific version of every package you want to use.

And then, the first time you hit upon a package it doesn't have, you have to develop and maintain your own version of it (as far as I understand?). This sounds like a lot of work for someone who wants packages to just work, so they can focus on other things.

I remember using freebsd at some point. The annoyance of not being able to just grab a deb from random sites and install them far outweighted any benefits I got from a cleaner OS organization and some extra features. Nix feels the same way.

I am not saying nix is a bad idea or that it'd have no benefit. Just that, for non-enthusiasts and non-early adopters like myself, it's dead in the water until there is some major support behind it.

georgyo|4 years ago

What are the problems you actually have?

If you want to deploy and configure something, nix does that exceptionally well.

If you want to install up to date software on Debian, RHEL, or other distribution but not negatively impact the system, nix does that exceptionally well.

If you want to build containers, nix does that decently.

Nix solves a lot of problems beyond reproducible environments. And it solves them permanently for nearly all use cases.

panta82|4 years ago

But it sounds like you have to get deep into this programming language, and figure it out yourself for the stuff that's not already there?

Containers and software installs etc. already have solutions that are much simpler to use. Don't require me to learn a new language or get into the weeds of how each package works.

PoignardAzur|4 years ago

I wanted something like Nix a lot more back when I was on Arch.

Since I've switched to PopOs, I've had fewer problems: most of the features I want are either in the default distributions, or in FlatPak packages.

Since I'm using defaults more and re-installing the environment less often, I don't worry about reproducible configs as much.