> Flakes will hopefully be that soon but I wouldn't recommend starting with flakes when learning Nix in 2023.
That Flakes provide a consistent entrypoint (and a consistent schema for such) into a codebase would have deferred a significant amount of confusion I had when getting started with Nix.
> They're experimental
The functionality as-is hasn't been changed. The 'experimental' flag itself hasn't been a practical problem.
However, flakes still have some rough edges & design problems to them, and there's some disagreement in the community over how flakes were rolled out.
I'd say for an end user, the benefits far outweigh the costs.
> ... and you still need to learn most of flake-less Nix (except channels and NIX_PATH) anyways.
I think the phrase "flake-less Nix" paints the wrong idea. I'd instead put it: Most of what you need to learn about Nix is unrelated whether the Nix evaluation started from a Flake or not.
That Flakes provide a consistent entrypoint (and a consistent schema for such) into a codebase would have deferred a significant amount of confusion I had when getting started with Nix.
> They're experimental
The functionality as-is hasn't been changed. The 'experimental' flag itself hasn't been a practical problem.
However, flakes still have some rough edges & design problems to them, and there's some disagreement in the community over how flakes were rolled out.
I'd say for an end user, the benefits far outweigh the costs.
> ... and you still need to learn most of flake-less Nix (except channels and NIX_PATH) anyways.
I think the phrase "flake-less Nix" paints the wrong idea. I'd instead put it: Most of what you need to learn about Nix is unrelated whether the Nix evaluation started from a Flake or not.