> why flakes are nonsense
Oh wow, I want to hear more about that. I love flakes, but I've known they are controversial, and never really heard why.
Flakes are controversial primarily because they create a parallel ecosystem that breaks compatibility with the traditional Nix workflow, introduce additional complexity without solving core reproducibility issues, and were developed with limited community input despite representing a fundamental shift in how Nix works.
I like flakes... I use flakes.
You love flakes... keep using them!
The rest is politics.
I mean they get evaluated in a weird way: for example you cannot use the `rec` keyword when declaring inputs.
- flakes perform very poorly in large repos. This might be changing soon with lazy-trees, but I've been waiting for that for 2+ years.
- flake inputs are not fetched lazily.
- flakes are somewhat restrictive in that you can't override an input with an arbitrary value. This matters if you want to pass in, say, a specially configured nixpkgs object. In practice, for non trivial use cases, flakes fail to solve the problem they set out to solve. Most flakes expose lib functions for these advanced use cases but that's pretty much equivalent to what you get with non-flakes.