News for hackers. Stuff that matters.
Re:Trying Guix: A Nixer's Impressions by pkulak on Friday July 18, 2025 @03:04PM (#44608573)
> 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.

Re:Trying Guix: A Nixer's Impressions by realo on Friday July 18, 2025 @03:17PM (#44608706)
I like flakes... I use flakes.

You love flakes... keep using them!

The rest is politics.

Re:Trying Guix: A Nixer's Impressions by pkulak on Friday July 18, 2025 @04:47PM (#44609655)
For sure. But I find other people's opinions interesting.
Re:Trying Guix: A Nixer's Impressions by chriswarbo on Friday July 18, 2025 @09:43PM (#44611786)
Here's some of my opinions on flakes, FWIW https://lobste.rs/s/6js1hj/flakes_have_failed#c_byu8ds
Re:Trying Guix: A Nixer's Impressions by hamandcheese on Friday July 18, 2025 @04:53PM (#44609717)
- 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.

Re:Trying Guix: A Nixer's Impressions by dawnofdusk on Friday July 18, 2025 @04:54PM (#44609726)
I mean they get evaluated in a weird way: for example you cannot use the `rec` keyword when declaring inputs.
Re:Trying Guix: A Nixer's Impressions by ethan_smith on Friday July 18, 2025 @10:38PM (#44612089)
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.