Most stuff I care about factors out into .config which I turn into a git repo, push to GitHub and slap on a CI checks for secrets.
Most engineers don’t need to forge a demonic pact with the Nix gods who demand I upend and replace everything from my operating system to my wife.
But then there's that 5% case where you do have to forge a demonic pact with the nix gods, and it's handy to have your summoning circle all warmed up and ready to go.
Here's a (too verbose, sorry) example: https://stackoverflow.com/a/74944857/1054322
It works well on all of my linux boxes. On my mac it takes forever because it wants to rebuild the linux universe. Given that the system architecture is a parameter, I think there should be a way to rewrite my flake (or update the nixpkgs numpy) to just rely on bsd tools in those cases, but I haven't found it yet.
That's what's holding me up from recommending it to my team. I'm happy to just use linux everywhere, but they aren't.
But, now that you're using Nix, ... you could use Nix to describe an OS setup, write Docker images, declare the tooling for a dev environment, etc.
Just don't expect to become an expert overnight, it takes a while to sink in (or it did for me).
I've been half tempted to try and bridge Nix with some simplified UX. Something resembling blasphemy but nonetheless focused on user experience above all else. At least doing that would be a natural project to learn Nix better, too heh.
(disclaimer: I use Nix[OS] on two machines and my macbook. I know it decently.. but far from where i'd expect given it's my primary OS and package manager)
I still don't know if it's worth, I have to experiment a bit more with it.
I have to say I'm still struggling with the flake:/
A really good LSP could do wonders for user experience.
1. invest a lot of time in learning nix (nixos in my case)
2. set up a system that works great
3. a year or two go by
4. need to make a change, modification, or set up another system
5. relearn everything from step 1
That said, I really do like the system. Just wish it were more user friendly and better documented.
But ideally no year will go by without using it, because you do install it to another system, tweak your home config, etc. The same way one doesn’t forget most of git, even though that one has some arcane UX.
I'm running nix-build daily...
I love nixos but home-manager is just too much to force into all my other machines.
bad docs and difficult to grok error messages seem to be a consistent theme that comes up learning nix.
> bad docs
Yeah, pretty damned awful.
> error messages
That too.
I honestly think that inventing a language was a huge mistake. Guix took a much more sensible approach, but a libre kernel is unusable for 99.9999% of people.
Btw, am I the only person annoyed at calling configuration files dotfiles? Not all hidden files/folders are configuration, and not all configuration files are hidden.