Toujours ce vieux lien qu’on cherche à faire entre l’informatique et l’industrie automobile. On aura beau expliquer en long et en large que c’est comme comparer un fil à linge et un topinambour, ça nous collera toujours aux basques comme le sparadrap aux doigts du Capitaine Haddock.
Google et le taxi
En faisant ma petite veille informatique habituelle, je suis tombé sur ce document de Google (dixit L’Informaticien, mais il n’y a pas de signature) qui m’a sidéré… Comment en effet ne pas être ébahi par autant de mauvaise foi ? Pour planter le décor : Google use de son statut de moteur de recherche le plus utilisé pour centraliser l’information collectée par les organes de presse qui paient des journalistes pour cela, et ce bien sûr sans leur reverser quoi que ce soit.
Sur ce, le gouvernement s’en mêle, et propose un “lex Google”. Que ce soit une bonne idée ou pas, comment la faire, etc., tout ça se discute. Mais ce qui me fait tomber à la renverse est l’argumentation développée par Google (le seul fait qu’une entreprise se place au même niveau qu’un Etat souverain en argumentant étant déjà assez irritant) :
Exiger de Google une rémunération au motif que son moteur de recherche dirige des lecteurs vers les sites de presse n’a pas plus de sens que d’exiger d’un taxiste qui conduit un client à un restaurant de rémunérer le restaurateur.
Comparons ce qui est comparable : imaginez vous dans une ville où une compagnie et une seule possède 95% des taxis, et que, forte de ce quasi-monopole, cette société demande aux restaurateurs de leur donner gratuitement des imprimés des menus pour qu’elle puisse les proposer comme un service d’information aux gens qui se font conduire.
En tant que restaurateur, si vous refusez, vous pouvez faire une croix sur toute la clientèle de passage qui prend un taxi pour venir manger en ville. Si vous acceptez, vous supportez seul le coût d’imprimer les menus, sans même avoir une garantie que le taxi les mettra en avant.
Ca ne vous pas fait penser à Naples, ce genre d’histoire ?
Good car, bad computer
Dans la même veine de comparaison avec l’industrie automobile (et le lien est plus direct), un autre article qui fait bondir : The failed record of the software industry–why software people don’t get it, de Jeffrey Palermo, où l’auteur nous explique que les “gens de l’informatique” (c’est bien vague) ne captent tout simplement pas…
Et c’est reparti sur la comparaison moisie entre les deux industries, et l’auteur citant le nombre effarant de projets informatiques en état d’échec, pour les comparer aux projets automobiles qui, comme tout le monde le sait, aboutissent toujours en temps et en heure, dans le budget choisi et avec une qualité parfaite. Et comment pourrait-il en être autrement ? Les voitures qui sortent des chaînes actuellement sont fiables à 99,999%, et roulent 200 000 kms au pire.
Heureusement, certains commentaires pointent le fait que, peut-être la raison pour laquelle il y a tant de différence est qu’on ne parle jamais des projets automobiles avortés. Mais combien de prototypes innovants dans les salons qui ne voient jamais la route ? Et qui sait ce qui se passerait s’ils la prenaient ? Dans l’échange à distance entre le patron de General Motors et Bill Gates, devenu mondialement célèbre (voir ici si vous étiez en vacances sur Mars ou pas encore né), le premier se moquait du second en prétendant que si les voitures étaient conçues comme des programmes, elles crasheraient deux fois par jour. Je ne suis pas persuadé que ce ne serait pas le cas des prototypes de salon livrés en grue parce que le constructeur n’est même pas sûr qu’ils peuvent rouler.
Mais vous me direz que les voitures de production atteignent, quant à elle, cette qualité nécessaire pour rouler 200 000 kms sans se planter (à part erreur du conducteur), alors que c’est rare pour un logiciel de ne pas planter. C’est vrai… mais cela n’a rien à voir avec une quelconque paresse des informaticiens ou un manque de maturité de l’industrie informatique comme voudrait le faire croire J. Palermo.
Savez-vous qu’il existe des programmes informatiques qui ne plantent quasiment jamais ? Est-ce que vous pensez que Mars Rover est programmé en Visual Basic ? Que les satellites prennent le risque de mettre en l’air des millions de dollars à cause d’une erreur de programmation ? Savez-vous que la plupart des appareils électroniques modernes fonctionnent en Java ? Quand est-ce que vous avez vu la dernière fois votre machine à laver planter ?
A l’inverse, le crash du Concorde était du à une lame métallique mal fixée sur l’avion précédent. L’explosion de la navette spatiale à la perte des plaques d’isolant ventral. A bien y regarder, dans le domaine aéronautique ou spatial, la dernière fois qu’on a entendu parler d’un accident lié à l’informatique, c’était le crash d’Ariane 5… lors de son vol inaugural… il y a 16 ans…
Alors c’est quoi le problème ?
Tout simple : si on se donne les moyens, on peut faire des logiciels avec le même degré de robustesse que de la mécanique. Et ne me dites pas que je suis partial : je suis à la base ingénieur en Génie des Systèmes Mécaniques, et je travaille dans l’informatique depuis 10 ans. Je connais le pire des deux mondes .
Or, le problème est que les projets ne donnent qu’un budget limité à l’informatique, et la réalisation s’en ressent. Si on veut de la qualité en informatique, il faut y mettre le prix… Pour revenir à l’échange entre Gates et Welch, aujourd’hui, en informatique, les gens préfèrent majoritairement l’équivalent de voitures qui coûtent 25 dollars et font 1000 kilomètres au litre d’essence. Même si elles tombent en panne une minute par jour. S’ils veulent une garantie d’absence de pannes, ça leur coûtera 1000 fois plus à l’achat et dix fois plus en essence.
Pourquoi est-ce qu’au final, ça coute aussi cher par rapport au reste de la voiture ? Là encore, c’est extrêmement simple : une voiture est composé de quelques milliers de pièces, dont la moitié en mouvement. Un programme informatique, même d’une complexité moyenne, se compose en général de quelques centaines de milliers d’instruction, toutes dépendantes les unes des autres, et réalisant un mouvement à une fréquence qui se chiffrent en millions par seconde. Je serai curieux de voir une voiture fonctionnelle et fiable avec 100 000 pièces en mouvements. Ou même n’importe quelle machine. Si elle existe, elle doit coûter quelques milliards.
Moralité de l’histoire
En informatique comme dans l’industrie, il y a des règles qui s’appliquent pour tous. On a ce pour quoi on a payé… Tant que les clients ne comprendront pas la complexité inhérente de l’informatique, et croiront qu’il suffit d’envoyer des lignes de texte dans un compilateur, ils obtiendront ce qu’ils méritent : du code pas fini… et des plantages.