Windows 95 fusionó las aplicaciones de MS-DOS y Windows y actualizó el conjunto de API de 16 a 32 bits, y Microsoft quería que la gente no tuviera ningún motivo para no actualizar. Un motivo estuvo a punto de sobrevivir: SimCity para Windows 3.x, cuyo autor, Jon Ross, había dejado accidentalmente un error que leía memoria que acababa de liberar. En Windows 3.x funcionaba bien porque la memoria nunca se iba a ninguna parte; en las versiones beta de Windows 95 el juego se rompía. Con más de 5 millones de copias vendidas, SimCity tenía que funcionar sin contratiempos.

Microsoft localizó el error y añadió código a Windows 95 que busca SimCity; si encuentra el juego en ejecución, ejecuta el asignador de memoria en un modo especial que no libera la memoria de inmediato. SimCity no estaba solo: el Administrador de compatibilidad del Windows ADK muestra la base de datos de correcciones por aplicación. Windows NT, al detectar archivos que normalmente se instalan con Final Fantasy VII, aplica una corrección llamada literalmente «Win95VersionLie» —simplemente le dice al juego que está en Windows 95—, mientras que Dungeon Keeper recibe correcciones de rutas de archivos vinculadas a archivos como «Horny.tif».

La obsesión era institucional. Raymond Chen documentó en 2005 que el gerente de desarrollo de Windows 95 condujo una camioneta hasta la tienda local de Egghead Software y compró una copia de cada programa de PC de la tienda; cada desarrollador se hizo cargo de hasta dos programas para instalarlos, ejecutarlos y documentar errores, y los probadores podían quedarse con lo que terminaran. Mike Perry, exdirector creativo de Maxis, señaló más tarde que Ross pasó a trabajar para Microsoft tras dejar Maxis.

Cuñas de compatibilidad: el sistema operativo reconoce una aplicación específica y modifica discretamente su propio comportamiento —liberaciones retrasadas, mentiras sobre la versión— para que el binario antiguo nunca se entere de que algo cambió.

Una actualización de sistema operativo vive o muere por su catálogo de aplicaciones; los usuarios no comprarán un sistema operativo que rompa los juegos y las herramientas que ya poseen.

Corregir a cada proveedor externo era imposible, así que las cuñas permitieron a Microsoft reparar la compatibilidad sin tocar el código de nadie más.

Detectar aplicaciones por nombre o por archivos instalados mantuvo cada corrección quirúrgica en lugar de cambiar el comportamiento para todo.

Las pruebas masivas con software real de venta al público convirtieron incompatibilidades desconocidas en una lista de verificación documentada y asignable antes del lanzamiento.

La compatibilidad hacia atrás se puede comprar aplicación por aplicación: emular los errores de una plataforma antigua —incluso sus errores de memoria— elimina toda excusa para no actualizar y rompe el dilema del huevo y la gallina del software.

Joel Spolsky, que volvió a contar la historia de SimCity en 2000, lo calificó como la forma de romper el problema del huevo y la gallina de los sistemas operativos: «ofrecer un modo de compatibilidad hacia atrás que entregue un camión lleno de gallinas o un camión lleno de huevos, según cómo se mire, y sentarse a recoger los beneficios». La base de datos de cuñas por aplicación sobrevivió a Windows 95 y sigue siendo inspeccionable en el Windows Assessment and Deployment Kit.

CONSULTA LAS PRUEBAS

Las fuentes

  1. Windows 95 went the extra mile to ensure compatibility of SimCity, other games Ars Technica · arstechnica.com ·