Publicité

Bug, inévitable bug...

Par

L’histoire du matin, c’est ce bug informatique qui a été à l’origine de la spectaculaire et inattendue baisse du chômage en août. Le Ministère de l’Emploi a révélé hier que cette baisse était due au fait que SFR avait connu une « grave défaillance dans l’acheminement d’une partie des messages de relance (SMS et messages vocaux) aux demandeurs d’emploi ». Résultat, un nombre conséquent de demandeurs d’emploi n’ont pas pu actualiser leur situation et ont donc été rayés des listes. La cause exacte (une msie à jour non signifiée à Orange) et la question de savoir si SFR est seul fautif, ou si Pôle Emploi aurait pu réagir plus tôt, sont presque secondaires face à l’énormité du fait : un bug informatique peut changer la vie de dizaines de milliers de personnes et provoquer de fausses joies à un pays.

Eh bien, il va falloir s’y faire.

Publicité

Car à mesure que nos sociétés s’informatisent, nous serons de plus en plus soumis à la possibilité du bug. Pour une raison simple : le bug est inévitable. Il est inévitable car, jusqu’à maintenant, il est consubstantiel à l’informatique.

D’ailleurs l’origine même du mot plonge dans la préhistoire de l’informatique. La légende veut que le terme de « bug » (insecte en anglais) remonte à 1947. La grande informaticienne Grace Hoper découvre dans l’un des premiers ordinateurs électromécaniques qui ne fonctionnait plus très bien, une mite qui a fait grillé le système. C’est cette histoire qui popularise l’usage du terme en informatique. En fait, il semblerait que le mot bug pour désigner le défaut de fonctionnement d’une machine date de plus loin encore, Edison l’aurait employé.

Aujourd’hui, le bug n’est plus un insecte, mais une erreur de programmation qui va entraîner le mauvais fonctionnement du programme ou de la machine. Comment est-ce possible ? Comment est-ce encore possible aujourd’hui alors que nos machines sont si puissantes ? Parce que les logiciels sont les constructions les plus complexes jamais réalisées par l’homme et qu’à mesure que cette puissance augmente, la complexité augmente (on dit souvent qu’il est mathématiquement plus simple de concevoir le Viaduc de Millau qu’un système d’exploitation). Parce que ces logiciels sont constitués de millions de lignes de code qui interagissent les unes avec les autres, et qu’il est impossible d’assurer que le logiciel fonctionnera dans toutes les conditions de ces interactions. Pourquoi est-ce impossible ? Parce qu’il n’existe pas de machine assez puissante, ni assez de temps, pour tester un logiciel dans toutes les possibilités de son usage, et parce que pour l’instant, la « preuve formelle », c’est-à-dire la preuve mathématique qu’un logiciel va bien fonctionner, est un objet de recherche (alors que pour un pont, on connaît les lois physiques et mathématiques qui permettent d’assurer a priori qu’il va tenir).

Alors bien sûr, tous les logiciels ne sont pas égaux devant le bug. Si on le tolère aisément dans nos téléphones portables (et quand on y pense, c’est une expérience très courante que le bug dans nos téléphones ou nos ordinateurs), on le tolère beaucoup moins dans l’industrie aéronautique, où l’on investit des millions d’euros et de dollar pour en limiter au minimum la possibilité.

Mais comme le montrent des accidents tragiques (accidents d’avion, mais aussi accidents de voitures), il est toujours possible, et jusqu’à ce qu’on puisse établir des preuves formelles, il le sera. Du point de vue intellectuel on peut considérer que c’est assez beau. Ca rappelle que nos logiciels sont des constructions humaines, que ces lignes sont écrites par des hommes, et qu’en tant que tel le système demeure faillible par nature. Du point de vue pratique, ça n’est guère rassurant.

Ce qui nous arrive

12 min