On Fri, Dec 22, 2017 at 04:10:39PM +0100, Ludovic Courtès wrote: > Static binding has a cost, as you write, but it gives us control over > the environment, and the ability to capture and replicate the software > environment. As a user, that’s something I value a lot.
> I’d also argue that this is something computational scientists should > value: first because results they publish should not depend on the phase > of the moon, second because they should be able to provide peers with a > self-contained recipe to reproduce them. As a scientist I value that *more* than a lot. There is a tension between 'just getting things done' and making things reproducible. If we can do the latter, we should. Also as a programmer I value reproducibility a lot. I want people who report bugs to use the exact same setup. Especially when they are running on machines I can not access (quite common in sequencing centers). If someone sends me a core dump, stack trace or even an asserting in a shared lib it is incredibly useful the full stack is the same. I am wary of flexible resolution of optimized libraries and kernels. Look at what atlas tried to do and what a mess it became. I strongly believe we need explicit statements about what we are running. It does imply Guix will have to provide all options, directly or through channels. I also work on HPC and if I know where I am running I know *what* to target. It is a deterministic recipe. Pj.