What is Guix's main selling point?
What is Guix's main selling point?
I personally like Nix's syntax better than a lisp, but that is just a preference.
The core of how they operate is the same. Just look at their build/ci system.
Also, nix/guix are somewhat lower-overhead ways to build a system for local development than containers.
This is a good starting point:
So Guix gives you reproducibility, provenance tracking, and hackability, but you can still "speak Docker".
It's also much more than a matter of syntax: see the great explanation at https://news.ycombinator.com/item?id=18910683 .
That rewrite is bring new features, differences, and makes them not compatible with each other. However, as they started off with the same code to me they will always be a fork. While something can evolve to something that is fully independent, it doesn't change it's origin. Also a fork is not bad word. Many successful "forks" become more popular than the original.
To this day guix still uses the nix-daemon code, which is written in C. And they build system they used was hydra, written in perl. In fact http://hydra.gnu.org used to say "download nix package". for everything. Cuirass is very recent, but you can still see that it still looks extremely similar to Nix's hydra.
I think guix still has better porcelain (cli).
Nix has much better discoverability and readability. I was going to show different files, however gnu.org NS servers seem to be down.
Most importantly it isn't a competition. These two products existing only benefit each other as new ideas between them flow both ways.
It's quite an ambitious goal, and I'm still surprised it succeeded. Unlike docker, nix can't be naive about what's being built. For example, it has to understand the specifics of python and python packages, and build its own infrastructure instead of using the existing tools like docker.
This is the goal, but not actually the case. Nix/guix does many things to make reproducible outputs more likely, however people are very good at putting things in a package that are not deterministic, such as the build time down to the milisecond.