Almost yen years ago, Ludovic started work on GNU Guix. It has since become the home of a vibrant community encompassing free software enthusiasts, principled developers, and scientists in search of reproducibility.
Before that, Ludovic was already a co-maintainer of GNU Guile, an implementation of the Scheme functional programming language, and a contributor to Nix, Nixpkgs, and NixOS—the beginning of a delightful journey at the crossroads of functional deployment and embedded domain-specific languages.
Package managers are so old that one may wonder why we are here
discussing recent tools in this area. What are we trying to achieve
that existing tools failed to provide? And why-oh-why does so much
energy go into sidestepping package managers through “application
bundles” à la Docker?
In this talk, I’ll present the grail that GNU Guix is after, taking
examples from core features and key packaging practices. You may
recognize bits from other projects: the rigor of Debian, the functional
paradigm of Nix, the flexibility of Spack. You’ll also see salient
differences: Guix tries to go as far as possible in each of these
directions while remaining pragmatic.
There’s a fine line between pragmatism and deception that Guix tries not
to cross. I’ll explain what the project’s “red lines” are and why we
think users and implementors should care. I’ll reflect on how we can
collectively shape a brighter future for software deployment.
We’ve managed to bring all of you together from different package manager communities, but can we also bring the package managers you work on together? Is there room for one package manager to rule them all, or will package management always be a very domain-centric activity? If it does, is that good or bad?