La nature d’Internet est qu’une information étonnante peut être diffusée pendant des décennies, avant que la bonne personne ne la partage et que tout le monde soit un peu abasourdi, nous l’avons manquée pendant si longtemps. Ce n’est pas l’histoire la plus importante, mais elle a été partagée pour la première fois par l’ingénieur logiciel Joel Spolsky en 2000 dans un article sur le problème de la poule et de l’œuf pour les développeurs de plates-formes et de logiciels.
Il y a quelques jours, Kal Yoshika, podcasteur et développeur de jeux, a lu le blog et a partagé cette histoire à propos de Sim City (et le tweet a ensuite été repris par les points de vente y compris RPS) qui est juste là-bas dans la nature depuis vingt ans.
Spolsky écrit sur l’importance de la rétrocompatibilité pour Microsoft, et sur la façon dont le succès de Windows 3, du moins selon l’interprétation de Spolsky, pourrait en partie être attribué à la qualité de son fonctionnement avec des logiciels plus anciens. On passe donc à Windows 95…
« Windows 95 ? Pas de problème », écrit Spolsky. « Belle nouvelle API 32 bits, mais elle fonctionnait toujours parfaitement avec les anciens logiciels 16 bits. Microsoft était obsédé par cela, passant une grande partie du changement à tester chaque ancien programme qu’il pouvait trouver avec Windows 95.
« Jon Ross, qui a écrit la version originale de SimCity pour Windows 3.x, m’a dit qu’il avait accidentellement laissé un bogue dans SimCity où il lisait la mémoire qu’il venait de libérer. Oui. Cela fonctionnait bien sur Windows 3.x, car le la mémoire n’est jamais allée nulle part. »
Sur un système d’exploitation différent, cependant, ce bogue pouvait complètement empêcher le jeu de fonctionner : et SimCity était en effet un jeu très populaire.
« Voici la partie étonnante », écrit Spolsky. « Sur les versions bêta de Windows 95, SimCity ne fonctionnait pas lors des tests. Microsoft a détecté le bogue et ajouté un code spécifique à Windows 95 qui recherche SimCity. S’il trouve SimCity en cours d’exécution, il exécute l’allocateur de mémoire dans un mode spécial qui ne pas de mémoire libre tout de suite. C’est le genre d’obsession pour la rétrocompatibilité qui a incité les gens à passer à Windows 95. »
De nos jours, chaque jeu reçoit une assistance après le lancement, mais à l’époque, tous les bogues avec lesquels un jeu était livré en feraient partie pour toujours. L’industrie telle qu’elle était n’avait pas le support post-lancement comme une priorité élevée, et il était hors de question que les développeurs de SimCity corrigent ce bogue : Microsoft a donc construit un tout petit système qui exécute temporairement votre PC d’une nouvelle manière pour le contrer. C’est l’un de ces moments héroïques de programmeur où personne n’aurait jamais su cela sans le poste de Spolsky, car il a fait le travail.
Le partage initial de cela par Yoshika a conduit d’autres personnes à rejoindre leurs favoris. Le superbement nommé code_and_beer fait remarquer (s’ouvre dans un nouvel onglet) que la version PC de Final Fantasy VII « mourra carrément si elle voit qu’elle fonctionne sur Win NT au lieu de Win95, donc Windows se base sur la présence de certains fichiers ». Autrement dit, NT indique à FF7 qu’il fonctionne sous Windows 95, même si ce n’est pas le cas, juste pour que le magnum opus de Square Enix fonctionne. Génial.
Le programmeur de SimCity, Jon Ross, a continué à travailler sur la série pendant de nombreuses années et est responsable de l’un des œufs de Pâques les plus stupides de tous les temps. Cela vous fera (probablement) rire.
Fait amusant à propos de SimCity 2000 : si vous vous asseyez pendant tout le générique, le jeu a pitié de vous et vous offre un œuf de Pâques sous la forme de la blague préférée de Jon Ross (le programmeur DOS). pic.twitter.com/3lWoFnRiUI13 décembre 2018
Joel Spolsky est maintenant à la retraite après une longue et extraordinaire carrière dans le logiciel, au cours de laquelle il a travaillé sur des produits de renommée mondiale et a fondé plusieurs sociétés. Son site Web personnel est rarement mis à jour, mais il est rempli de ses réflexions sur la technologie et les problèmes plus larges auxquels l’industrie est confrontée.