Les 10 pires erreurs de programmation de l'histoire
Le code est presque partout. L'avènement des ordinateurs modernes est arrivé dans les années 1940. Au cours de sa riche histoire, la programmation a permis une meilleure communication et conduit à des avancées dans de nombreux secteurs. Tout ce qui va des voyages spatiaux aux télécommunications et aux soins de santé a été révolutionné et affecté par le code.
De plus, la programmation permet d’apprendre de précieuses leçons de vie. 6 Habitudes de vie qu’elle pourrait vous enseigner aujourd’hui 6 Habitudes de vie que pourrait vous enseigner la programmation aujourd’hui Tout ce que vous devez savoir sur le succès de la vie peut être obtenu avec un programme informatique. Ne me crois pas? Continuer à lire. Lire la suite . Cependant, au cours de son passé historique, le codage a également entraîné la destruction. Les cas de mauvais code ont provoqué un désastre majeur. Voici 10 des pires erreurs de programmation de l'histoire.
1. Bogue de l'an 2000
Le bogue de l'an 2000, aussi appelé bogue 2000 ou bogue du millénaire, était un problème de codage censé causer un pandémonium d'ordinateur. Dans les années 90, la plupart des programmes d’informatique indiquaient des années à quatre chiffres dans une version abrégée. Ainsi, 1990 se lit 90, 1991 écrit 91, etc. En réduisant le nombre d'années à quatre chiffres à deux chiffres, les codeurs ont ainsi économisé une précieuse mémoire. Mais les ordinateurs ont été incapables de reconnaître 2000 simplement comme 00. Exacerbant encore le problème, 2000 a été une année bissextile. Certaines applications logicielles ne représentaient pas la journée supplémentaire.
Beaucoup craignaient que l’an 2000 puisse détruire les ordinateurs et l’électronique à travers le monde. Je me souviens de mon premier lecteur de DVD avec un brillant “Conforme à l'an 2000” autocollant. Alors que l’an 2000 a connu une évolution logicielle assez simple, la mise à jour des ordinateurs et des applications dans tous les secteurs coûte environ 300 milliards de dollars. Les ordinateurs ne sont pas tombés en panne. La vie s'est déroulée normalement. Mais pas sans beaucoup d’argent et de travail, ce qui, selon Slate, aurait été une perte de temps..
Pourquoi c'est l'une des pires erreurs de programmation: La panique de l’an 2000 a été extrêmement coûteuse, à hauteur de 300 milliards de dollars. De plus, les ressources ont été redirigées pour résoudre ce problème potentiel.
2. Bug Heartbleed
Apparu dans la bibliothèque OpenSSL, le bogue Heartbleed est une faille de sécurité dangereuse. Heartbleed - Que pouvez-vous faire pour rester en sécurité? Heartbleed - Que pouvez-vous faire pour rester en sécurité? Lire la suite . Le protocole TLS (Transport Layer Security) utilise la bibliothèque de cryptographie OpenSSL. En raison de son utilisation répandue dans TLS, Heartbleed s'est propagé rapidement. Ce bogue permet à pratiquement n'importe qui sur Internet de lire la mémoire sur des machines exécutant les itérations d'OpenSSL concernées. Jusqu'à 64 Ko de mémoire système peuvent être lus. Le bug Heartbleed a été révélé au public en 2014, mais il a été lancé en 2012..
Le bogue a été provoqué par une validation d’entrée incorrecte en raison d’une vérification des limites manquante dans l’extension de pulsation TLS. Comme il s’agissait d’un bogue dans l’extension Heartbeat, le nom de Heartbleed a donc été créé. Un article de 2014 dans The Register signalait que 1,5% des sites les plus populaires activés par TLS restaient vulnérables au bogue Heartbleed. Cependant, les implémentations TLS mises à part OpenSSL n’ont pas été modifiées. Par conséquent, la version Windows de TLS et les services de sécurité réseau de Mozilla n'étaient pas affectés par le bogue Heartbleed. Un correctif a finalement résolu le problème avec OpenSSL version 1.0.1g. En ajoutant des contrôles de limites pour empêcher la lecture excessive de la mémoire tampon, le bogue Heartbleed a été corrigé avec succès.
Pourquoi c'est l'une des pires erreurs de programmation: Le bogue Heartbleed a créé une menace majeure pour la sécurité. Le délai entre le lancement et l’application des correctifs a rendu les systèmes affectés vulnérables pendant des années. Chaque fois qu'il y a un problème de vulnérabilité informatique, cela crée un énorme problème de sécurité des données.
3. Virus de World of Warcraft pris trop littéralement
World of Warcraft une fois souffert d'un virus informatique d'une autre sorte. En 2005, un fléau numérique a infiltré quelques serveurs de jeux. Des milliers de personnages sont en proie au virus du sang. Sensationnel développeur Blizzard a présenté Hakkar, le dieu du sang. L'ennemi considérable infecté caractères avec du sang corrompu. Alors que l’infection sanguine avait à l’origine pour but d’affliger les joueurs à proximité du corps de Hakkar, le transfert de joueur à joueur s’est effectué en dehors du royaume. Ce moyen non intentionnel de propagation du virus du sang provient d'animaux de compagnie en jeu. De plus, les personnages non joueurs (NPC) sont devenus porteurs.
Archimonde est devenu le premier serveur infecté. Les personnages de bas niveau sont morts instantanément. Même les personnages puissants ne durent pas beaucoup plus longtemps. Bien qu'un problème de codage ait perpétué le virus via les PNJ et les animaux domestiques, il n'était pas prévu que le virus soit diffusé en dehors du royaume de Hakkar. Alors que des milliers de joueurs sont morts, World of Warcraft ne comporte pas de perma-mort. Blizzard a corrigé le virus du sang en relançant le serveur. Mais pas avant que les cadavres de joueurs jonchent les Sensationnel paysage.
Pourquoi c'est l'une des pires erreurs de programmation: D'accord alors World of Warcraft peut ne pas présenter un problème de sécurité des données ou un scénario mettant la vie en danger - mais les joueurs prennent leur divertissement au sérieux. Blizzard a passé des heures à réinitialiser les serveurs. Fait intéressant, le comportement du joueur dans le jeu imitait ce qui pourrait se produire dans une épidémie du monde réel avec une flambée épidémique, une panique et un effondrement de la civilisation. N'a pas joué Sensationnel? Premiers pas avec ce guide complet pour débutants Introduction à World of Warcraft: Un guide complet pour les débutants Premiers pas pour World of Warcraft: Guide complet pour les débutants Voici ce que vous devez savoir si vous n'avez jamais essayé World of Warcraft auparavant. Lire la suite .
4. Therac-25
Alors que beaucoup d’erreurs de programmation causent des vulnérabilités ou des joueurs morts dans le jeu, le mauvais code pouvez tuer. La catastrophe de Therac-25 s'est produite avec l'appareil de radiothérapie Therac-25. Produit par Énergie atomique du Canada, le Therac-25 a provoqué une surdose accidentelle de radiation entraînant la mort d'au moins six patients. Les enquêtes ont révélé qu'un logiciel médiocre et un développement de système insuffisant provoquaient des surdoses de rayonnement. Celles-ci résultaient en grande partie de la difficulté à effectuer des tests logiciels automatisés.
Les surdoses de rayonnement Therac-25 servent de rappel pour créer un code facilement testable. Les machines tuant des humains peuvent sembler de la science-fiction, mais l'incident de Therac-25 prouve le contraire. Mais c'était vraiment le résultat d'une erreur humaine dans le codage qui a causé ces problèmes. Des experts, notamment Nancy Leveson, ont découvert que des codeurs inexpérimentés avaient créé un logiciel buggy. De plus, un seul programmeur a créé le logiciel, basé sur le code du Therac-6 et du Therac-20..
Pourquoi c'est l'une des pires erreurs de programmation: Chaque fois qu'il y a une perte de vie humaine, une erreur de programmation est l'un des pires exemples de mauvais code.
5. Vol de l'ancien marinier 1
La NASA utilise un peu de technologie. Sa nouvelle sonde Horizons utilise un processeur PlayStation. Le vice-président de l'architecture et de l'ingénierie des solutions chez NVIDIA, Marc Hamilton, écrit régulièrement des blogs sur l'utilisation du matériel NVIDIA par la NASA. La fusée Mariner 1 a été lancée avec une sonde spatiale destinée à explorer Vénus. Cependant, légèrement après le lancement, la fusée a dévié de sa trajectoire de vol prévue. Le Mariner 1 a été détruit peu après le décollage.
Une erreur mineure du programmeur a causé le bogue Mariner 1. Bien que les rapports diffèrent, les signes indiquent un trait d'union manquant. Selon les documents d'archives de la NASA, “le Mariner 1 Commission de révision après vol a déterminé que l'omission d'un trait d'union dans les instructions informatiques codées du programme d'édition des données permettait la transmission de signaux de guidage incorrects à l'engin spatial.” Arthur C. Clarke, auteur de renom (2001: l'odyssée de l'espace) surnommé le sinistre Mariner 1 “le trait d'union le plus cher de l'histoire.”
Pourquoi c'est l'une des pires erreurs de programmation: L'erreur de Mariner 1 aurait pu être facilement évitée. Avis de service public: chers développeurs, veuillez tester votre logiciel.
6. Le réseau AT & T en panne
Peux tu m'entendre maintenant? Non. Le 15 janvier 1990, plus de 50% du réseau d’AT & T s’est écroulé. En neuf heures, 75 millions d'appels sont restés sans réponse. Alors que les rapports initiaux accusaient les pirates informatiques, le coupable était bien pire: une mise à jour logicielle standard. N'oubliez pas cela la prochaine fois que vous vous plaindrez de mises à jour Windows 10 Les mises à jour Windows sont définies pour être moins ennuyeuses Les mises à jour Windows sont définies pour être moins ennuyeuses Sous le nouveau système, les mises à jour Windows 10 devraient être de taille plus petite, être téléchargées plus efficacement et mettre moins de pression. sur vos ressources système. Un changement que vous ne remarquerez probablement même pas. Lire la suite . Une erreur dans une seule ligne de code a entraîné une panne du réseau AT & T pendant plusieurs heures. Un commutateur s'est réinitialisé, mais le bogue signifiait que le second commutateur envoyait un autre message. Essentiellement, un effet domino a démarré, le réseau continuant de répéter son erreur. Finalement, AT & T a mis au point une solution en réduisant la charge du réseau. Les interrupteurs se réinitialisent ensuite.
Malgré de nombreux tests, une seule déclaration a paralysé le réseau. Le programme a été écrit en C. Une instruction break dans une clause if est restée imbriquée dans une clause switch. La grande panne de 1990 chez AT & T semble être un problème simple. Beaucoup d'appels manqués, ou, comme ce serait le cas aujourd'hui, un tas de SMS manqués, de notifications sur Instagram, Twitter et Snapchat. Pourtant, le manque de communication entraînait d’énormes impacts monétaires. Des compagnies comme American Airlines ont subi des pertes financières. American Airlines a reçu deux tiers moins d'appels en raison de la panne. La panne de 1990 est toujours un excellent exemple de l’importance des tests. En outre, la panne d’AT & T rappelle le lien inhérent entre la technologie et l’économie..
Pourquoi c'est l'une des pires erreurs de programmation: Non seulement le réseau d'AT & T s'est écroulé, mais il a passé plusieurs heures en panne a entraîné une chute financière.
7. Jour des morts-vivants: Hôpital St. Mary's Mercy
En 2003, un problème logiciel mal “tué” 8 500 personnes. Le centre médical St. Mary's Mercy de Grand Rapids, dans le Michigan, a rapporté à tort que de nombreux patients étaient décédés avec un problème technique dans leur système logiciel de gestion des patients. Ce désastre de code est plutôt inoffensif par rapport aux décès de Therac-25, puisque personne n’est réellement mort. Pourtant, lire à propos de votre propre décès est déconcertant - surtout quand vous êtes en vie et en bonne santé.
Les rapports de faux décès ne se limitaient pas aux patients. Cette correspondance a été envoyée aux compagnies d’assurance et aux bureaux de la sécurité sociale. Parce que la sécurité sociale et les prestataires d'assurance s'assurent que les patients éligibles bénéficient de l'assurance-maladie, cela a posé tout un problème. Les employés de St. Mary's Mercy ont informé les patients, les organismes gouvernementaux et les assureurs de l’erreur. En fin de compte, l'erreur de programmation n'a pas attiré beaucoup d'attention. Il n'est pas clair si l'erreur de codage a déjà été corrigée. Cependant, aucun autre faux rapport de mort n'a été publié. L'hôpital St. Mary's Mercy a simplement changé de logiciel de gestion des patients.
Pourquoi c'est l'une des pires erreurs de programmation: Heureusement, personne n'est réellement mort. Mais le contrôle des dommages pour assurer une couverture continue des soins de santé était un gâchis.
8. Pré-alpha prisonnier: libération anticipée
Le Michigan a connu un problème informatique entre 2003 et 2005. Au cours de cette période, une erreur de programmation informatique a provoqué la libération anticipée de 23 prisonniers en annulant les peines prononcées à l’encontre des prisonniers de l’État du Michigan. Les détenus chanceux ont bénéficié de peines réduites de 39 à 161 jours. Bien que toute fin de peine d'emprisonnement accidentelle soit problématique, heureusement, il s'agissait d'infractions mineures, telles que des accusations de drogue et de détournement de fonds.
Les logiciels visent souvent à automatiser les processus. En réduisant les tâches manuelles, nos vies sont théoriquement plus faciles. Cependant, cette affaire avec des prisonniers du Michigan qui sortent de prison les cartes précoces prouve encore une fois la valeur des tests de logiciels. Une erreur de programmation mineure a des conséquences énormes, en particulier dans cet exemple. Imaginez si les prisonniers libérés se mêlaient de crimes plus graves.
Pourquoi c'est l'une des pires erreurs de programmation: Cet incident aurait pu être bien pire, mais la libération anticipée d'un prisonnier fait peur.
9. Hartford Coliseum Falls
L’effondrement du Colisée de 1978 à Hartford a coûté 90 millions de dollars, mais il aurait pu être bien pire. Le Hartford Coliseum s'est effondré plusieurs heures après que les fans aient quitté les lieux. Son toit en treillis d’acier n’a pas supporté le poids de la neige mouillée. Un bâtiment s'est effondré à cause d'une simple erreur de programmation. Le codeur du logiciel de CAO utilisé pour concevoir le Hartford Coliseum n'a pas pris en compte plusieurs variables. Au lieu de cela, le programmeur logiciel a supposé que les supports de toit en acier ne feraient que faire face à la compression.
Les ingénieurs font face à de nombreux défis. L'utilisation d'un logiciel devrait faciliter leur travail. Cependant, le fait de ne pas prendre en compte plusieurs variables entraîne d’immenses défis. Alors que vous pouvez simplement corriger une erreur dans Minecraft, Le logiciel de CAO influence directement les structures du monde réel.
Pourquoi c'est l'une des pires erreurs de programmation: Au moins personne n'est mort. Mais la dévastation économique d’une perte estimée à 90 millions de dollars est énorme..
10. J'ai eu 99 problèmes et un Pentium est un
Les processeurs Intel offrent généralement de meilleures performances que leurs homologues AMD. Cependant, AMD offre un excellent rapport qualité-prix. Le nouveau plan d'AMD: Réduisez votre réalité virtuelle moins cher. Le nouveau plan d'AMD: Réduisez votre réalité virtuelle, AMD semble passer à la vitesse supérieure en 2016. Si tout va bien, ils vont va être un grand joueur sur le marché de la réalité virtuelle. Lire la suite . Mais en 1994, les microprocesseurs Intel Pentium ont subi un grave problème. Les processeurs 486DX et Pentium comportaient une unité à virgule flottante (FPU). Cette FPU était un coprocesseur mathématique. La génération précédente de processeurs Intel traitait les mathématiques avec des entiers. En incluant une FPU intégrée, cette puce Pentium de nouvelle génération promettait des calculs numériques beaucoup plus rapides.
La FPU Pentium utilisait un algorithme de base 4 STR. Des informations incorrectement saisies ont entraîné des calculs légèrement incorrects. Mais même une variation mineure peut entraîner des problèmes considérables, comme dans le cas de l’effondrement de Hartford ou de Therac-25. Environ cinq entrées sur un millier ont été laissées de côté, mettant à mal les capacités de division longues du Pentium. Intel a officiellement affirmé qu'une erreur de script avait provoqué des problèmes d'entrée de recherche. Quoi qu'il en soit, les calculs de Pentium sont attribués à un mauvais code.
Pourquoi c'est l'une des pires erreurs de programmation: Quelques chiffres significatifs peuvent sembler peu, mais dans les cas d'ingénierie ou de précision des soins de santé, il est essentiel.
Mauvais au code: des erreurs de programmation se produisent
Des erreurs de programmation se sont produites depuis le début du codage. Comme l'utilisation du code dans une variété de domaines continue à se développer, cette tendance ne disparaîtra probablement pas de si tôt.
Il existe de nombreux exemples d’erreurs de programmation. Certains sont assez anodins comme un World of Warcraft punaise. D'autres aboutissent à une mort réelle (Therac-25) ou imaginée (Sainte-Marie). Ne laissez pas ces exemples célèbres vous dissuader de coder. Consultez ce guide pour choisir le bon langage de programmation Web. Comment choisir le bon langage de programmation Web à utiliser Comment choisir le bon langage de programmation Web à utiliser Pourquoi certaines langues devraient-elles être choisies par rapport à d'autres dans un scénario donné? Cet article fournira une liste de contrôle des questions que le programmeur devrait poser afin de choisir la langue à utiliser. Lire la suite .
Quels exemples historiques de mauvais code vous souvenez-vous? Laissez un commentaire ci-dessous avec votre choix de gaffes de programmation!
Crédit d'image: nouskrabs et McIek via Shutterstock.com
En savoir plus sur: Histoire, Programmation.