El software también envejece

Cuando pensamos en el paso del tiempo en informática, automáticamente nos centramos en el hardware. Con los años, los ordenadores se quedan obsoletos, por ser demasiado lentos, tener poca memoria o poco espacio de disco. O bien se estropea alguno de sus componentes y el coste de la reparación (si todavía es posible conseguir repuestos) es más elevado que el coste de cambiarlo por uno nuevo.

Sin embargo, y aunque parezca mentira, para el software también pasan los años. Las aplicaciones también envejecen y necesitan un cuidado continuo para seguir siendo útiles: hay que corregir errores, mejorar su seguridad, adaptarlas a nuevos dispositivos, añadir funcionalidades y hasta vigilar que cumplan con las nuevas leyes (por ejemplo, la directiva europea de protección de datos, GDPR, que entra en vigor el 2018 y obligará a revisar todas las webs y aplicaciones que traten con datos de usuarios).

Si la aplicación es crítica y difícil de reemplazar por una nueva, como las bases de datos de un banco, se suele ir manteniendo mientras la tecnología lo permite… o mientras queda alguien con el conocimiento suficiente de esa tecnología (¡esto explica por qué a los expertos en COBOL, uno de los lenguajes de programación más antiguos, se les sigue pagando tan bien!). Pero, en general, cuando una aplicación se crea, el desarrollador suele planificar un periodo limitado y corto de mantenimiento activo. Al final de este periodo se produce el end-of-life, es decir, el fin de la vida útil del producto, concepto muy relacionado con el de obsolescencia programada que afecta a nuestros electrodomésticos (ver el artículo Lavadoras con muerte anunciada en este mismo diario).

Esta muerte del software no es rápida e indolora, sino más bien degenerativa. Paulatinamente se deja de mejorar la aplicación y solo se corrigen errores graves y agujeros de seguridad. Más adelante, se elimina el producto de los canales de distribución habituales (descarga en página web, tiendas de aplicaciones, etc.) y, como mucho, se sugieren otras alternativas más modernas si las hubiera. Finalmente, la empresa detrás del producto lo remata parando cualquier tipo de soporte o actualización de la aplicación. A partir de este momento los usuarios están “solos ante el peligro”. En el mejor de los casos, podrán seguir usando el software pero a su cuenta y riesgo. Sin embargo, la mayoría de veces, problemas de compatibilidad entre la aplicación y el hardware o librerías externas de las que dependa van a hacer que rápidamente sea completamente inutilizable. En ese momento, la única esperanza son proyectos como Archive (que intentan preservar el software para generaciones venideras) o la emulación (la simulación por software de una plataforma hardware) y las máquinas virtuales, que permiten ejecutar programas antiguos en ordenadores más modernos (como por ejemplo, los emuladores de consolas o máquinas recreativas.

¿Cuánto tiempo se tarda en pasar de una etapa a otra? Eso depende de la demanda de los usuarios y el interés de los desarrolladores. Para ciertos productos como los sistemas operativos, los desarrolladores suelen marcar ciclos de vida bien definidos y fáciles de predecir, para que los clientes puedan planificar su compra y uso. Pero para otras aplicaciones, como una aplicación móvil o un servicio web, el desarrollador puede abandonarla en cualquier momento. Recientemente hemos tenido dos casos célebres de aplicaciones que han alcanzado el fin de su vida útil: Microsoft Paint (2017) y Adobe Flash (2020). En el caso de Microsoft Paint, el enfado de los usuarios consiguió salvar a esta aplicación de su “muerte digital.

Y por desgracia, esta situación será cada vez más habitual. Las aplicaciones de hoy en día van a envejecer mucho peor que el software más antiguo. ¿Cómo ejecutarás tu aplicación si tu base de datos en la nube deja de estar disponible? De hecho, en muchos casos ni siquiera hemos adquirido una aplicación, sino el derecho a usar un servicio con lo que estaremos mucho más desprotegidos ante cualquier cambio que decida el fabricante con nuestros datos, muchas veces “cautivos” en ordenadores externos. Lo más recomendable en estos casos es leer detenidamente las condiciones de uso del servicio (aquí explican de forma comprensible las condiciones de muchos de los servicios que probablemente estéis usando cada día) y tenerlas en cuenta a la hora de elegir servicios, por ejemplo priorizando aquellos que permitan como mínimo descargar tus datos en algún formato estándar.

Esta ‘muerte’ del software no es rápida e indolora, sino más bien degenerativa

Pero no todos son malas noticias: la desgracia de unos suele ser una oportunidad para otros. El envejecimiento del software abre muchas oportunidades de negocio, sobre todo en un contexto donde muchas aplicaciones se liberan completamente como software libre. De esta forma, cualquiera tiene la oportunidad de continuar manteniendo una aplicación que su creador original ha abandonado y quedarse con sus clientes, que estarán encantados de evitarse el dolor de cabeza de seleccionar, migrar y aprender a utilizar una nueva aplicación. Y hay soluciones hasta para cuando ni el código fuente de la aplicación está disponible. No es fácil (ni a veces del todo legal, a consultar en cada caso) pero estudiando el fichero ejecutable de la aplicación se puede llegar a obtener una versión más o menos comprensible del código fuente.

Así que si buscas un buen plan de futuro para tu carrera profesional, ¡dedícate a la medicina estética del software!

Robert Clarisó es director acad´rmico del Máster Universitario de Ingeniería Informática de la UOC.

Jordi Cabot es profesor de Investigación ICREA en el Centro de Investigación de la UOC

Crónicas del Intangiblees un espacio de divulgación sobre las ciencias de la computación, coordinado por la sociedad académica SISTEDES (Sociedad de Ingeniería de Software y de Tecnologías de Desarrollo de Software). El intangible es la parte no material de los sistemas informáticos (es decir, elsoftware), y aquí se relatan su historia y su devenir. Los autores son profesores de las universidades españolas, coordinados por Ricardo Peña Marí (catedrático de la Universidad Complutense de Madrid) y Macario Polo Usaola (profesor titular de la Universidad de Castilla-La Mancha).