On m'a déjà "vendu" Nix une fois que c'était génial et tout et tout... Déjà, nix n'est pas toujours compatible avec lui même selon les versions donc l'environnement stable sur un cluster qui évolue et se renouvelle... Un peu sur-vendu.
Faire un paquet Nix n'est pas si facile que cela. Qu'en est-il d'un paquet Guix ?
On a toujours le même environnement... à condition de ne pas dépendre du noyau et de ses modules. Si vous faites du CUDA, Guix ne va pas plus être magique que Nix ou que module je pense.
On a toujours le même environnement... ce qui permet la reproductibilité. C'est un argument actuel en science. Autant je trouve GÉNIAL le projet Reproductible Build en partie porté par Debian (un même code source donne toujours le même code compilé selon l'algorithme SHA256, donc je suis sur que le code qui tourne n'a pas de porte dérobée rajoutée en cachette), autant je suis sceptique en science pour du code ou ce mot, reproductible, est utilisé pour complètement autre chose. En science, je me fou un peu (je fais exprès de prendre l'argument 100% opposé) de retrouver avec le code du voisin le même résultat que lui à la dixième décimale ! Pour moi, la reproductibilité en science est qu'une autre équipe, avec un environnement quasi-identique (mais non forcément identique) retrouve les mêmes lois de comportement, les mêmes phénomènes. Cela permet d'enrichir et de conforter un modèle. Retrouver N fois le même résultat avec le même code n'a pas un intérêt fou, sauf à vérifier que le chercheur n'a pas triché, et encore... En plus, ce coté reproductible pousse les personnes à faire du code non portable, aux API qui changent et dont le résultat est fortement dépendant des versions des modules de ceci et de cela. Telle et telle version marchent (même s'il y a un bogue et que c'est hyper dépendant des versions), hop je publie -> c'est reproductible par tout lecteur ! Bref, cette notion là éloigne au final assez fortement de la notion de reproductible au sens universel du terme.
Qu'en est-il du Python ? Car en pratique, c'est souvent les modules Python qui sont "chiants" à packager vu que cela bouge tout le temps (trop souvent) et que les API changent... Avec Nix, mes amis font du conda ou du virtualenv... Bref, c'est pas une super réussite !
# Nix et autres
Posté par Sytoka Modon (site web personnel) . En réponse à la dépêche GNU Guix version Un‐Point‐Zéro. Évalué à 10. Dernière modification le 09 mai 2019 à 20:19.
On m'a déjà "vendu" Nix une fois que c'était génial et tout et tout... Déjà, nix n'est pas toujours compatible avec lui même selon les versions donc l'environnement stable sur un cluster qui évolue et se renouvelle... Un peu sur-vendu.
Faire un paquet Nix n'est pas si facile que cela. Qu'en est-il d'un paquet Guix ?
On a toujours le même environnement... à condition de ne pas dépendre du noyau et de ses modules. Si vous faites du CUDA, Guix ne va pas plus être magique que Nix ou que module je pense.
On a toujours le même environnement... ce qui permet la reproductibilité. C'est un argument actuel en science. Autant je trouve GÉNIAL le projet Reproductible Build en partie porté par Debian (un même code source donne toujours le même code compilé selon l'algorithme SHA256, donc je suis sur que le code qui tourne n'a pas de porte dérobée rajoutée en cachette), autant je suis sceptique en science pour du code ou ce mot, reproductible, est utilisé pour complètement autre chose. En science, je me fou un peu (je fais exprès de prendre l'argument 100% opposé) de retrouver avec le code du voisin le même résultat que lui à la dixième décimale ! Pour moi, la reproductibilité en science est qu'une autre équipe, avec un environnement quasi-identique (mais non forcément identique) retrouve les mêmes lois de comportement, les mêmes phénomènes. Cela permet d'enrichir et de conforter un modèle. Retrouver N fois le même résultat avec le même code n'a pas un intérêt fou, sauf à vérifier que le chercheur n'a pas triché, et encore... En plus, ce coté reproductible pousse les personnes à faire du code non portable, aux API qui changent et dont le résultat est fortement dépendant des versions des modules de ceci et de cela. Telle et telle version marchent (même s'il y a un bogue et que c'est hyper dépendant des versions), hop je publie -> c'est reproductible par tout lecteur ! Bref, cette notion là éloigne au final assez fortement de la notion de reproductible au sens universel du terme.
Qu'en est-il du Python ? Car en pratique, c'est souvent les modules Python qui sont "chiants" à packager vu que cela bouge tout le temps (trop souvent) et que les API changent... Avec Nix, mes amis font du conda ou du virtualenv... Bref, c'est pas une super réussite !