Le "BUG" de l'an 2000

Publication sur le WEB en mai 1999

Ce sujet est, si l'on en croit les commerciaux d'une actualité de plus en plus pressante. Il fait le bonheur des banques, des assurances, et bien sûr des fourniseurs de matériels informatiques et logiciels.

Le syndrôme se nourrit d'un mélange de crainte et d'apétits commerciaux.

Après un démarrage foudroyant, nos chers assureurs ont été saisi eux aussi par l'angoisse métaphysique. Ils sont habitués à assurer, moyennant finance (ce qu'on ne peut leur reprocher) des risques qu'ils savent calculer. Or, dans ce cas précis ils ne savent pas. Ils corrigent donc leur précipitation en avisant leurs clients qu'un défaut de précaution en face du danger (notion éminement vague) ne constitue plus un risque assurable mais une négligence.

Les fournisseurs de matériel eux, vous garantissent que si vous ne renouvelez pas scéance tenante votre parc de matériel, vous vous préparez des lendemains qui déchantent.

Les clients (surtout les gros, les plus frileux) somment leurs développeurs de leur certifier le passage à l'an 2000 même pour des logiciel vieux de plus de 10 ans (ils ont peut être raison de s'inquiéter dans ce cas), même pour des logiciels ne traitant pas les dates (là, ils ont tort).

Certains hommes politiques pensent et déclarent que les avions ne décolleront pas le premier janvier 2000.

De nombreux acteurs de ce mélodrame ne savent pas non plus, à tel point que certains se posent légitimement la question:

Ce risque existe t-il vraiment?

Il est donc utile de rappeler quelques remarques de pur bon sens:

L'horloge physique de tout ordinateur est constituée d'un oscillateur piloté par quartz, elle émet des vibrations, on peut dire des "TIC-TAC" inaudibles car électriques et de très haute fréquence. Aucun de ces "TIC" ni de ces "TAC" n'est spécifique du 1er janvier 2000. Il y a donc fort à parier qu'elle ne prendra pas le temps de faire une pause à cette date et continuera à battre avec la même frénésie.

L'horloge système ou horloge "BIOS" est un compteur alimenté par ces "TIC-TAC" qu'il compte et stocke dans un mot mémoire de 16bits, c'est à dire 16 informations binaires (pouvant prendre deux positions chacune). Cette horloge "BIOS" réserve au comptage des années une zone de sept bits, ce qui permet de compter deux puissance sept soit cent vingt huit années. L'année zéro de tout PC compatible, même les plus anciens (XT) est l'année 1980. Nous avons donc d'excellentes raisons de penser que de ce coté il n'y a rien à craindre avant le 1/1/2108 ce qui nous laisse un peu de temps.

J'ai pour ma part ressorti de mon grenier un vieil XT de 1987 et lui ai fait allègrement passer sans encombre le cap du 1/1/2000, au niveau du DOS, au niveau des outils de programmation (BASIC MICROSOFT), et au niveau de la bureautique de l'époque (WORD 3.0, MULTIPLAN, CHART).

Ne cherchez pas une autre horloge, il n'y en a pas!

Que penser alors de ceux qui nous poussent à changer de matériel micro en nous en proposant un certifié an 2000?

Ou est le danger?

Sur un micro-ordinateur le seul danger résidera dans les logiciels développés, et on distinguera deux catégories:
Ceux développés en langage de programmation modernes tels que BASIC, PASCAL, C pour lesquels, à moins d'une faute commise par le programmeur, il ne doit pas y avoir de problème.
J'entend par "faute" l'action délibérée de tronquer une date alors que le langage qui s'alimente dans l'horloge "BIOS", permet de la manipuler entière, du centième de seconde à l'année, sans supplément d'occupation mémoire.

Il peut par contre se faire qu'une date soit tronquée à l'affichage faute de place sur l'écran ou le papier, mais ceci n'a alors aucune importance.
Ceux développés à la façon des gros et anciens systèmes, avec des langages issus de cette époque (FORTRAN, COBOL, PL1 ...) ou développés avec des langage associés à des bases de données (DBASE, Langages dit de 4e génération ou L4G).
Avec ces outils, le programmeur est invité à définir ses propres formats de date, et, s'il a gardé de mauvaises habitudes du temps ou la place mémoire était rare et chère, il peut avoir commis l'outrage.

Avec les bases de données, le remède est relativement léger, à condition d'avoir encore sous la main le programmeur et les sources du logiciel.
Du coté utilisateur il conviendra, avant de se couvrir la tête de cendres chaudes:
De réfléchir pour déterminer si son outil fait un usage des calculs et comparaisons de dates.

De procéder à une simulation.
Si, malgré toutes ces réflexions approfondies, le doute vous hante encore, alors contactez-moi.

Pour ma part, je suis persuadé que l'an 2000 sera l'année des experts judiciaires dans la discipline informatique, non à cause de ce "fameux" BUG mais plutôt à cause de l'usage doûteux que certains en auront fait en 1999.