Nix is poised to win the future of cloud infrastructure, but critical obstacles remain. A 3-year production story on the promise, the pain, and the concrete path forward for Nix.
Flakes should never have happened the way that they did IMHO. The situation it’s left the project in is awful. It’s stuck. They can’t move forward and accept flakes because they undermine some fundamental things. They can’t move backwards and remove them or even make breaking changes because they’re in such widespread use.
When I looked into nix a year or two ago I was directed to use flakes by half of the documentation while the other half told me to not to use them since they were experimental. Ended up going back to what I knew, since, you know, installing things was a pretty solved problem.
flakes, in the most basic terms, is a solution to “well it works on my machine”.
So say you develop something within a flake, you can then take that flake and reproduce it 100% on whatever machine you choose. so what ever your building in it if it worked on your machine, it’s going to work on all machines.
It’s also good for configuring your NixOS. your configs are within the flake and if something happens to your system or you want to replicate your system completely on another machine you can. i.e. you push your nixos config to a git repo and then you can clone it where ever and now you have your complete OS setup somewhere else. Like say if your system borks and you need to reinstall Arch or Ubuntu or whatever it will take awhile to get it set up completely has you had it before. With NixOS and Flakes it’s like 10minutes tops to get back to where you were.
Flakes should never have happened the way that they did IMHO. The situation it’s left the project in is awful. It’s stuck. They can’t move forward and accept flakes because they undermine some fundamental things. They can’t move backwards and remove them or even make breaking changes because they’re in such widespread use.
When I looked into nix a year or two ago I was directed to use flakes by half of the documentation while the other half told me to not to use them since they were experimental. Ended up going back to what I knew, since, you know, installing things was a pretty solved problem.
As someone who hasn’t touch base with Nix for a long time: what are “flakes”?
flakes, in the most basic terms, is a solution to “well it works on my machine”.
So say you develop something within a flake, you can then take that flake and reproduce it 100% on whatever machine you choose. so what ever your building in it if it worked on your machine, it’s going to work on all machines.
It’s also good for configuring your NixOS. your configs are within the flake and if something happens to your system or you want to replicate your system completely on another machine you can. i.e. you push your nixos config to a git repo and then you can clone it where ever and now you have your complete OS setup somewhere else. Like say if your system borks and you need to reinstall Arch or Ubuntu or whatever it will take awhile to get it set up completely has you had it before. With NixOS and Flakes it’s like 10minutes tops to get back to where you were.