It’s been couple of months after I migrated back to Guix.
Overall, the basic experience is good, comfortable. At the same time, some of the pain points, are quite painful:
Guix aim to be fully reproducible, but that is one big missing part. 3 Times I could not build my config due to incompatibilities between Guix, NonGuix, and my channel. Due to my time-machine “hack”, I was able to recover an broke config relatively quickly, but this is a pain. One more reminder that I miss flakes.
Possible solution would be to code something like flakes is Guix, but I dont have the time to contribute to that level.
Hugo, mopidy w/ many plugins are missing. restic is outdated. NerdFonts are missing (license).
Many lsp servers are missing.
I use nix a lot on top of my basic Guix setup.
Primarily for these reasons:
I tried “hacking” it by using the gnu build system, and calling the build tool to fetch dependencies, but the “home” under build is read only.
I understand why it’s done this way, but it creates unecessary fatigue for something as self contained as a golang or rust app.
It would be possible to do it, but would require symbols to always contain a version, and we are not there at all. I needs everyone to do it, which means it wont happen.
Another example, I used chezmoi in the past, it was working until it did not due to one of it’s dependencies got upgraded.
For applications it makes sense, for core stuff it make sense, for apps dependencies, makes a lot less sense if they have a strong dependency management system.
In some ways, both will tend to break over time, but leveraging the work of upstream dev reduces the workload on packagers.
Some observations of my current migration:
You might have guessed, when the time is right, i’m back on nix.