Comment by pzmarzly
1 day ago
With homebrew, you can have Brewfile that can serve as declarative source of truth.
I try to install all software via homebrew, mise (https://mise.jdx.dev/), and scoop (https://scoop.sh/), and setting up a new machine now takes me minutes. Meanwhile I don't need to deal with Nix language.
> With homebrew, you can have Brewfile that can serve as declarative source of truth.
for homebrew, while Nix configuration is for everything. I never used a Brewfile before, so looked at https://github.com/Lissy93/Brewfile/blob/master/Brewfile but it just looks like a list of packages. What about the configuration for those packages? Or your own custom patches for them? Runtime parameters? Environment variables?
There is so much more going on in the typical developer environment that it doesn't seem like (to me, an uneducated fool) Brewfile would be enough to actually serve as a declarative source of truth, except for Homebrew-specific things.
Versions? Compatibilities? Just pulling latest doesn't cut it.
It has a really good story here imo! Pin nixpkgs to a commit with the version you need, it will pull and use the compatible deps even if you have those deps in different versions being used elsewhere.
1 reply →
Brewfile is definitely the best option when in that ecosystem, but even that falls short by having no explicit versioning. You have to hack in version pinning if you run into an issue with a specific package.
If you like mise, check out devenv for the nix version of it. Its a lot of the nix benefits without a lot of the nix drawbacks (but still some)