L'explication que j'ai eu pour cela était que c'était une pratique courante pour les programmeurs de représenter simplement l'année avec 2 chiffres. Mais pourquoi quelqu'un ferait-il cela? Si quelque chose que j'imagine, il faudrait plus d'efforts pour faire un programme de retour à 1900 au lieu de passer à 2000.pourquoi le bogue y2k existait-il?
Répondre
Premium de l'espace de stockage + manque de prévoyance = bug Y2K.
La sauvegarde des octets était très importante dans beaucoup de systèmes plus anciens. De plus, un sophisme commun dans le développement de logiciels est "personne ne va l'utiliser dans X ans". Alors pourquoi ne pas sauvegarder ces octets maintenant? 10/20/30 ans plus tard, cela sera sûrement mis au rebut pour un système complètement nouveau.
Pour citer Lex Luthor - "Wrong."
C'est ce que j'avais entendu mais ensuite j'ai pensé, "Attends, comment allouer juste assez de bits pour compter jusqu'à 100?" Les ordinateurs non corrigés retourneraient-ils à 1900 ou penseraient-ils que l'année était un non-sens comme 19 (100), 19 (101), ..., 19 (255), 1900. – user405163
Il y avait plusieurs résultats de ce bug. Certains programmes fonctionnaient avec des entiers et ajoutaient 1900 à l'entrée de l'utilisateur, certains ajoutaient une chaîne "19" à l'avant. En ces jours l'année 2000 était encore considérée comme un "futur de science-fiction", donc le problème était vraiment un peu difficile à repérer. Les dates à deux chiffres étaient utiles, car il n'y avait pas de conflit avec le jour et le mois, et un nombre entier (contrairement à l'octet) était trop cher. Ah! .. le bon vieux temps ;-) – Arsen7
@ user405163: Certaines langues (notamment COBOL) utilisent l'arithmétique * décimale * par défaut, donc vous devez déclarer une variable 2- * digit * au lieu d'un bit 8 * * un. Vous pouvez également avoir ce bug dans C en faisant des choses comme 'strftime (" 19% y ", ...)' au lieu de 'strftime ("% Y ", ...)'. – dan04
Pourquoi? Leur question était probable, "Pourquoi pas?" Si elle a sauvé quelques bits dans un monde où l'utilisation de la mémoire était significativement plus limitée, alors ils ont pensé qu'ils pourraient tout aussi bien sauver cet espace. De toute évidence, le "pourquoi pas" était parce que "votre logiciel pourrait être utilisé pendant une période de temps significative." Certains programmeurs ont eu la prévoyance de planifier à l'avance, mais pas tous.
L'histoire raconte que c'était à l'époque où 1 kilo-octet de RAM coûtait plus de 1000 $. Omettre les chiffres supplémentaires signifiait vraiment des économies d'argent.
Ceci est l'explication. Que recherchez-vous de plus? –
@Matt Ball: Je pense que c'est la différence entre le comment et le pourquoi. Je pourrais vous dire * comment * la Seconde Guerre mondiale a commencé, mais le * pourquoi * est commencé est beaucoup plus complexe. – Matchu