Magazine

Colportage virtuel

Publié le 16 juin 2007 par Carlseleborg
L'autre jour au bureau, je codais tranquillement quelque fonction lorsqu'un collègue vint m'interrompre pour me poser une question. Cela arrive.

Nous examinions donc son problème, lorsque soudain Thunderbird me fit savoir que j'avais un nouveau message. Curieux, forcément, j'ouvre ledit message, auquel est attaché un PDF. Comme il semble que la partie intéressante soit dans le PDF, je l'ouvre à son tour.

Et c'est alors qu'Acrobat Reader me demande si je souhaite faire une mise à jour.

Un petit instant je vous prie. Au moment où le gymnaste du document électronique m'affiche son message, voici l'état, si je puis dire, de ma pile d'appel:

. Coder une fonction
. . Répondre à une question de mon collègue
. . . Lire un mail
. . . . Lire un document
. . . . . Décider si je dois mettre à jour Acrobat Reader

Passons sur mon propre manque de politesse lorsque je lis mes mails alors qu'un collègue est avec moi, ce n'est pas très courtois de ma part, mais ce n'est pas non plus l'objet de cet article.

Le problème est que j'ai déjà interrompu trois activités, et Acrobat me demande encore si, par hasard, cela m'intéresserait de mettre à jour mon afficheur de PDF. Mon cerveau est déjà en train de jongler avec plus de boules que de raison, et j'ai d'ailleurs à ce moment là déjà laissé tomber deux variables locales, et il faut en plus que je décide si je souhaite installer une nouvelle version de Reader.

Point de vue du développeur

Les mises à jour automatiques sont la meilleure invention depuis le ciseau à couper le fil à couper le beurre. Elles me permettent à moi, créateur, de faire évoluer en permanence mon logiciel sur les ordinateurs de mes utilisateurs! Non seulement ils reçoivent ainsi très vite les derniers gadgets que j'y ai incorporés, mais je peux aussi corriger mes bugs les uns après les autres, et je suis sûr que les répercussions ne tardent pas chez mes fidèles utilisateurs.

Mais il y a mieux! Les mises à jour automatiques me permettent de programmer des mécanismes métaphysiques complètement glucoses par lesquels mon programme fork() avec un outil associé qui télécharge la mise et jour et applique un patch sur l'exécutable principal et ensuite re-fork() avec le programme et hop! ni vu ni connu j'ai modifié en un tournemain l'application et il avait raison l'autre de dire qu'en programmation on peut résoudre tous les problèmes avec une indirection supplémentaire et si De Vinci avait eu les pointeurs et le web, l'humanité serait aujourd'hui bien supérieure à elle-même (fork() ?) et la guerre en Irak n'aurait jamais eu lieu.

Car, enfin quoi, quel service je rends là à mes utilisateurs! Il est évident et logique, au nom de la plus pure pensée cartésienne, que toute nouvelle version de mon logiciel que je finis est meilleure que la précédente. En fait, les mots évolution et amélioration sont parfaitement synonymes, et tiens d'ailleurs je pourrais presque envoyer un courrier à l'Académie Française pour leur demander d'en supprimer un, au hasard, allez! évolution. J'espère que leur Acrobat Reader est à jour...

Point de vue de l'utilisateur

A la maison, j'utilise Gentoo, la distribution linux do-it-yourself par excellence, où on passe plus de temps à compiler les applications qu'à les utiliser, surtout sur mon processeur vieillissant. Laissez-moi vous dire qu'en matière de mise à jours métaphysiques, Gentoo c'est le top du top. Du pur Aristote. Tiens, prenez le compilateur GCC par exemple. Vous avez bien sûr déjà un GCC installé, sinon on retombe sur le problème de la poule et l'oeuf, et à ce sujet je vous invite à lire le court texte intitulé De l'impossibilité d'établir une carte de l'empire à l'échelle 1/1 par Umberto Eco, très édifiant sur ce types de paradoxes.

Or, donc, vous avez déjà votre GCC. Le processus est le suivant, plus ou moins automatique selon les goûts et les distributions :

  1. Vous téléchargez le code source de la nouvelle version et vous libérez, comme autant de chrysalides sortant d'un même cocon taregézède, tous les fichiers sources.
  2. Vous lancez la compilation, et profitez d'avoir enfin un moment pour entamer Guerre et Paix. Note: c'est votre GCC existant qui compile son successeur - quel sens du devoir!
  3. Dans la scène finale du film Alien 4, le monstre nouveau-né rend un émouvant hommage à sa mère en la trucidant sur place. Eh bien là c'est pareil, le GCC nouveau vampirise purement et simplement son géniteur en prenant sa place, et se recompile lui-même. N'essayez pas d'expliquer cela à un prêtre, point de vue hérésie on est limite.
  4. Pour ceux qui veulent basculer complètement du côté obscur, le pied-de-nez ultime à la théorie de la Genèse consiste à recompiler, avec son nouveau GCC, son noyau Linux. Même Lucifer ne fut jamais aussi fort, et pourtant Dieu sait qu'il essaya.
Ça, c'est le cas extrême. Pour la plupart des applications, le processus est plus simple, et bien plus acceptable déontologiquement. Sur Gentoo, vous utilisez portage pour faire cela, et la plupart du temps, cela fonctionne très bien et est très simple.

Jusqu'au jour où ça ne fonctionne plus. Il y a quelques semaines, j'ai fait une mise à jour complète de mon système. N'étant pas de ceux qui ont froid aux yeux, et ayant confié tous les fichiers de configuration de mon système à Subversion, le banquier Suisse du fichier ASCII, j'ai lancé la commande fatidique pour tout mettre à jour.

Master: Boatswain.
Boatswain: Here Master: what cheer?
Master: Good: speek to th' mariners: fall to't, yarely, or we run ourselves aground, bestir, bestir.
Exit. Enter Mariners.
Boatswain: Heigh my hearts, cheerly, cheerly my hearts: yare, yare: take in the top sail: tend to th' Master's whistle: blow till thou burst thy wind, if room enough!
William Shakespeare - The Tempest

Il m'a fallu trois jours pour m'en sortir.

15 logiciels ont purement et simplement refusé de compiler. Trois autres bloquaient tout le processus parce que leurs versions n'étaient pas compatible avec je-ne-sais quel autre logiciel présent sur La Longue Liste. Des changements significatifs dans certains sous-systèmes importants ont perturbé certaines fonctionnalités ésotériques, comme par exemple l'utilisation d'une clef USB, jusqu'à ce que je trouve par accident la bonne configuration pour tout remettre en place. Mon appareil photo n'est plus reconnu. Et je vous épargne l'histoire du Wifi.

C'est peut-être pour cela que je repense avec une certaine nostalgie à la glorieuse époque de l'université, quand TeX était mon outil principal. Un vrai bonheur, TeX est presque complètement libéré de la notion de mise à jour, comme l'explique Wikipedia:

The current version of TeX is 3.141592; it was last updated in December 2002. The design has been frozen after version 3.0, and no new feature or fundamental change will be added after that, so that all newer versions shall contain only bug fixes. Even though Donald Knuth himself has suggested a few areas in which TeX could have been improved, he indicated that he firmly believes that having an unchanged system that will produce the same output now and in the future is more important than introducing new features.

En termes de développement logiciel, si vous ne savez pas à quel saint vous vouer, Donald Knuth est un bon candidat - un peu excentrique peut-être, mais ça ne fait pas de mal. Avec TeX donc, pas de surprise, pas d'incompatibilité, pas de changement inopiné de comportement, on installe TeX et c'est un peu comme un mariage: c'est pour la vie. Microsoft Word, à côté, fait un peu volage.

Point de vue de l'humain

Et si votre boulanger vous disait, en vous tendant la baguette, avec le petit regard en coin de celui qui vous refile un bon tuyau: "Vous devriez attendre demain, le pain sera meilleur"?

Hein? Pourquoi? Le pain n'est pas bon aujourd'hui? Comment sera-t-il demain? Meilleur, ça veut dire quoi? La qualité sera meilleure? Ou est-ce parce que demain il y aura du sel de Guérande dedans? Et qu'est-ce que je fais en attendant? Pas de baguette aujourd'hui?

De la part d'un anti-virus, je peux le comprendre. Mais de la part de, mettons, TortoiseSVN, qui pourtant n'a vraiment rien à se reprocher, où même d'Acrobat Reader, je ne comprends pas cette insistance à vouloir me refiler une mise à jour dès qu'elle sort. Ça veut dire quoi? Trois sentiments se chamaillent alors dans mon esprit.

  1. Le logiciel est bogué, et la mise à jour va régler le problème. Soit! S'il est si bogué au point que tous les utilisateurs doivent le mettre à jour, ne faudrait il pas mettre en place une phase de bêta-tests? Et qu'est-ce qui me dit que la mise à jour, du coup, ne contient pas aussi son lot de nouveau bugs?
  2. La mise à jour va m'apporter une nouvelle fonctionnalité qui va me rendre heureux, riche et célèbre. Bon. J'avoue que je ne vois pas bien quoi, et par conséquent je n'en avais pas vraiment besoin. Après tout, ce n'est pas comme si la norme PDF évoluait tous les 3 mois. Si vraiment il me manque une fonctionnalité, je vais la chercher, mais bon sang qu'est-ce que je déteste les marchands d'aspirateurs qui viennent toquer à la dalle de mon écran pour me refourguer leur dernier modèle!
  3. Quelle arrogance! Je n'utilise déjà pas 5% de toutes les fonctionnalités que me proposent tous mes logiciels réunis, et l'autre il arrive, la bouche en fleur, comme si j'avais une demi-seconde à lui consacrer entre ma fonction à coder, la question de mon collègue et le mail qui vient de me tomber dessus, pour savoir si ça m'intéresse de passer à la version 7.2.3.6.c (build 4495) qui me permet d'écrire en chinois et en arabe dans le même champ! Non seulement je m'en fiche comme de mon premier yaourt, mais en plus je trouve ça carrément impoli de m'interrompre dans mon travail pour ce genre de trivialité.
Alors moi je dis: qu'on me laisse, en cliquant dans les menus, rechercher les mises à jour et les installer automatiquement, très bien. Mais les marchands d'aspirateurs, dehors!

Retour à La Une de Logo Paperblog

A propos de l’auteur


Carlseleborg 1 partage Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte