viernes, 27 de septiembre de 2013

Obsolescencia programada y software

Después de ver el interesante documental de TVE sobre obsolescencia programada, que ha circulado frenéticamente por la red, me quedé pensando sobre el papel del software en la obsolescencia prematura del hardware. En este artículo plasmaré algunas de mis reflexiones, sin duda incompletas, así que invito a los lectores a que comenten y completen con otros casos y puntos de vista lo que aquí quede reflejado.
Recomiendo encarecidamente ver antes el documental, pero resumo aquí su tesis fundamental para quien continúe leyendo sin haberlo visto: en la sociedad occidental, a partir de la década de 1920 hasta la actualidad, se comienzan a diseñar los productos para que dejen de funcionar después de un tiempo limitado y ello obligue a la compra de uno nuevo, lo que permite el crecimiento de la economía a costa evidentemente de los recursos del planeta.
En lo que a la informática respecta, es obvio que el hardware tiene una vida útil que se puede ampliar o reducir haciendo ingeniería, pero, ¿qué papel juega el software en todo esto? ¿Es posible forzar la obsolescencia a través del software? ¿Es posible aliviarla?
El otro día estuve trasteando con una vieja PDA con Windows Mobile, cuya última actualización de software fue en el año 2003. Se había convertido en algo completamente obsoleto, aunque el hardware funcionara perfectamente. Dos cosas han cambiado en los últimos años que hacen obsoleto al sistema operativo de esa PDA: (1) el modo de interacción con los dispositivos móviles y (2) la fuerte dependencia de la conexión a la red para la mayoría de servicios.
En el documental se habla poco sobre el concepto de moda. La moda, la estética, es un fantástico modo de hacer algo obsoleto aunque esté prácticamente nuevo. Esto ha funcionado en el mundo de la ropa desde hace décadas, y va funcionando cada vez más en el software. La ropa antigua puede estar nueva, pero muchos renuncian a ponérsela. Los programas de mi vieja PDA funcionan, pero ¿de qué me sirven en el contexto informático actual?
Se está imponiendo el hecho de que la última versión de un programa a veces incluye muchos más cambios estéticos que nuevas funcionalidades. En el caso del software no debería ser problema, porque la innovación en software no es dañina para el medio ambiente, salvo en un caso: cuando deja obsoleto al hardware.
Mi vieja PDA con Windows Mobile podría seguramente vivir una segunda vida si existiera una distribución de Android para ella, y seguramente su hardware es capaz de mover ese sistema operativo, pero evidentemente el fabricante no gana nada portando Android a un hardware que ya ni fabrica, así que no lo hará. De hecho prefiere no hacerlo porque así los clientes tendrán que comprar un nuevo hardware.
Durante años, las nuevas versiones de Windows obligaban a desechar el hardware antiguo por sus requerimientos de memoria o de procesador, mientras que Linux, en cambio, sigue funcionando en máquinas viejísimas que pueden encontrar así un nuevo uso, aunque sólo sea como servidor de archivos.
Es evidente que la evolución del hardware permite la creación de nuevo software con nuevas capacidades antes impensables, pero también es cierto que a veces, especialmente en el terreno de los sistemas operativos, el nuevo software se fuerza artificialmente para obligar al consumidor a adquirir nuevos equipos. Durante años esto se ha rumoreado de Microsoft: crean sistemas artificialmente “pesados” para que no puedan correr en hardware con unos pocos años de antigüedad, lo que beneficia a los fabricantes de ordenadores que por su parte se comprometen a incluir “de serie” el nuevo sistema operativo.
Pero, cómo forzamos al cambio de software para así dejar obsoleto al hardware? Se me ocurren las siguientes:
  • Los drivers: cuando queremos conectar al sistema un dispositivo nuevo, por ejemplo una impresora, necesitamos un trozo de software que indica al sistema cómo gestionar el nuevo dispositivo, es lo que se llama driver del dispositivo. Los fabricantes de dispositivos sólo escriben drivers para los sistemas operativos recientes.
  • Las versiones de los programas: en la actualidad un programa se concibe como algo vivo y en evolución. Esto no es necesariamente malo, pero una versión reciente de un programa puede incluir como requisito ser instalado en un ordenador con una potencia determinada o con determinada cantidad de memoria, lo que deja “fuera de juego” a sistemas antiguos.
  • Los formatos de archivo: si cambiamos el formato de archivo con el que trabaja un programa (por ejemplo docx en lugar de doc) estamos obligando a que los usuarios actualicen la versión del programa, y quizá esto obligue, según el punto anterior, a actualizar el hardware.
  • Los interfaces con los dispositivos: los discos duros actuales son Serial ATA, lo que hace que en un ordenador que sólo disponga de IDE (otro modo de conexión) no pueda instalarse un disco duro moderno. Esto es muy frecuente también con la memoria RAM, lo que impide que podamos actualizar la memoria a un sistema antiguo para instalar un software más reciente, así que hay que cambiar el ordenador completo.
  • Actualizaciones del sistema operativo: a partir de cierta fecha, el fabricante decide no actualizar más un sistema operativo, de modo que las vulnerabilidades que aparezcan (y que pueden permitir el acceso ilegal al sistema) no serán corregidas. Esto fuerza a la migración a la siguiente versión del sistema, y por tanto quizá al cambio de hardware.
  • ¿Alguna más? Dejadla en los comentarios.
¿Hay algún modo de luchar contra el abandono del software por parte de su creador? Sí, se llama “ingeniería inversa”. Este tipo de ingeniería, expresamente prohibida en los contratos de licencia del software “privativo” (es decir, el que no es software libre o software abierto), es práctica habitual en el panorama informático actual. Consiste básicamente en extraer conocimiento técnico suficiente a partir de los ejecutables de un sistema como para ser capaces de modificarlo a nuestro antojo. A veces para darle usos alternativos, por ejemplo, programar un mediacenter para la consola XBOX, a veces para hacer correr sistemas actuales en un hardware obsoleto, especialmente cuando el fabricante del hardware se desentiende de su producto. La legislación europea (y también la española, aunque más débilmente), indican que la alteración de un aparato para permitir usos que el fabricante limita (por ejemplo ejecutar un mediacenter en una consola) está dentro de la legalidad, aunque el contrato de licencia diga otra cosa. Por eso no se puede perseguir legalmente en el ámbito europeo a quienes realizan modificaciones de consolas, salvo que la modificación sea “exclusivamente” para la ejecución de copias piratas.
Un argumento más para preferir el software libre o abierto al software propietario. Cuando un aparato usa software libre o software abierto, no es necesaria la ingeniería inversa porque se entrega siempre el conocimiento suficiente para modificar el software: el código fuente.

Publicado originariamente en Computación creativa y otros sueños (Libro de Notas) el 25/1/2011.