Microsoft Windows 10. O como malas prácticas de programación te llevan a cambiar el nombre de tu sistema operativo

Microsoft Windows 10 Logo

Como muchos sabréis, hace unas semanas que Microsoft hizo pública la primera (y supongo) última versión de prueba de su nuevo sistema operativo Windows 10, un sistema para dominarlos a todos. En él nos llevábamos una gran sorpresa, lo que esperábamos que fuese nombrado Windows 9, ¿qué pasa, no saben contar? No, más bien al revés. Nosotros, los programadores, tomamos prácticas de programación malas por allá por los 90, cuando Windows 95 y 98 pisaban “fuerte” (si es que alguna vez lo han hecho realmente). En esta entrada veremos una de las razones de este cambio en el nombre del Sistema Operativo que fue hecho a última hora.

Primero hagamos un poco de memoria. ¿Cuál fue la “primera” versión del Sistema Operativo (propiamente dicho)? Muchos dirán que fue Windows 1.x, 2.x o 3.x, que de hecho fueron las primeras versiones de Microsoft Windows, pero no eran un Sistema Operativo propiamente dicho, si no más bien una de las tantas Shell graficas que existen. Estas versiones dependían de MSDOS para ser instaladas, es más tenías que comprar ambas aparte (primero una licencia de MS-DOS, que solía venir pre-instalado en IBM/PC, y después la licencia de Microsoft Windows con sus Diskettes).

No fue hasta el 24 de Agosto de 1995 que vimos la primera versión del Sistema Operativo, Microsoft Windows, propiamente dicho (cosas como el Plug&Play lo avalan, además de reemplazar a DOS como Sistema Principal para dejar paso a Microsoft Windows, si bien podías seguir usando la consola de MSDOS y volver a ella en cualquier momento). Los años pasaron y con ellos las siguientes versiones de Microsoft Windows, versiones como Windows 98, NT, ME, 2000 y XP son algunas de ellas. Si bien cada versión mejoraba a la anterior (por favor, ignorad a Windows ME en esta frase), la incompatibilidad con versiones anteriores iba creciendo conforme salían versiones nuevas del sistema operativo. Esto obligaba a los programadores a crear las aplicaciones para uno o varios Sistemas Operativos en concreto, lo que presentaba un problema ya que reducías el público potencial de tu aplicación.

Muchos programadores optaron por hacer el programa compatible con varias versiones del Sistema Operativo, normalmente con las más en uso en esos días. Muchos optaban por hacer un solo binario/proyecto para todos, añadiendo código para que el programa cambiase su comportamiento según la versión del Sistema Operativo bajo la que funcionaban, algo que parece una muy buena idea a simple vista y de hecho lo era. Sin embargo, muchos programadores implementaban esta compatibilidad de la forma menos aconsejada posible, comprobando parcialmente el nombre del Sistema Operativo, para los programadores, os dejo un ejemplo de pseudocódigo/codigo de como se hacía esto:

Para los que no entiendan de programación. Lo que hace es comprobar que la primera parte del nombre del sistema sea "Windows 9".

Para los que no entiendan de programación. Lo que hace es comprobar que la primera parte del nombre del sistema sea “Windows 9″.

Obviamente esto es un error, puesto que cualquier nombre del Sistema Operativo que comience con “Windows 9″ será detectado como un Windows 9x y por tanto se tratará de ejecutar como si fuese un Sistema Operativo obsoleto. Algo más correcto sería comprobar la versión del sistema (compilación) del mismo.

Escribir comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *