Obsolescencia: La pérdida en el software libre

Todos los programas, bibliotecas, imágenes,… dentro del software tienen un tiempo de vida. Las bibliotecas en las que se basan los programas tienen un tiempo de vida, después del cual se lanzan nuevas versiones, que suelen ser incompatibles con las anteriores. ¿Qué efectos tienen en el software libre?

Recuerdo que para KDE 1 (ya llovió) existía una herramienta que permitía conectarse a un servidor y editar código en PHP. Después de un tiempo, los desarrolladores abandonaron el proyecto. ¿Qué pasaría si alguien deseara poner a funcionar dicho programa actualmente?

Se encontraría que necesita instalar muchas bibliotecas obsoletas. Muchas de dichas bibliotecas no compilarían en las versiones de los compiladores actuales.

Ante tanto trabajo nadie se plantearía resucitar un proyecto abandonado. Pues el trabajo de ponerlo a funcionar sería titánico. La contribución que dio ese proyecto se ha perdido definitivamente.

Las bibliotecas de los programas deben evolucionar. Estas evoluciones hacen que sean incompatibles con las versiones anteriores y mantener la compatibilidad es a veces imposible.

Esto es uno de los efectos de la obsolescencia.

Puede llegar a suceder, y de hecho sucede, que los programas que funcionaban perfectamente con una versión de las bibliotecas, dejan de funcionar con la siguiente. Significa que a cada versión de las bibliotecas, los programadores deben testear si su aplicación sigue funcionando.

Si los programas están en proceso de desarrollo y soporte, esto no es un problema. Pero siguen siendo trabajo. Pensad lo que supuso para los programadores de KDE3 la aparición de Qt4.

Muchas de las aplicaciones que funcionaban con Qt3, dejaban de hacerlo bajo Qt4 y necesitaban una adaptación. El caso de Qt4 fue ejemplar, pues los propios desarrolladores de Qt dieron una aplicación que permitía adaptar el código de Qt3 a Qt4 y funcionaba en gran parte de los casos.

¿Y si no hay nadie dispuesto a hacer dicha migración? Tal como evolucionan las distribuciones de Linux y su política de sólo incluir las versiones más nuevas, tarde o temprano dejaría de funcionar. Se perdería la contribución que supuso dicha aplicación. Los usuarios de andar por casa, no podrían volver a usarla.

Esto no sólo pasa en Linux, imaginad los drivers (por ejemplo el de tu tarjeta de TDT) de Windows que dejan de funcionar al cambiar la versión. Si el fabricante decide no dar drivers para las versiones nuevas de Windows, se acabó. El caso de la TDT lo he sufrido en mis carnes.

Alguien podría pensar, si la abandonan es porque dicha aplicación no era tan importante. En algunos casos será cierto. En otros la cosa se pondrá seria. Imaginad que un científico hace un complejo programa que permite calcular el tratamiento de una enfermedad rara. Para hacer dicha aplicación decidió usar una biblioteca que por aquella época era muy popular. Después este hombre abandona dicho proyecto, por lo que el programa dejará de funcionar con el tiempo. Años después una persona enferma, necesita usar dicho programa, pero ya no compila. No hay tiempo para rehacer el programa desde cero y se necesita un científico muy competente para volver a escribirlo… La cosa se pone seria.

Muchos programadores gastan mucho tiempo, buscando adaptar su programa a la nueva versión. En el caso del software libre, en el que mucha gente usa su tiempo libre, llega un momento en el que no disponen de dicho tiempo para gastar.

La solución, hay muchas, bibliotecas bien definidas con interfaces estables, máquinas virtuales, mantenimiento de las versiones antiguas junto con las nuevas,…

La cuestión es:

¿Cuándo se van a plantear crear una estrategia para controlar la obsolescencia dentro del software libre?

Anuncios
Esta entrada fue publicada en Opinión. Guarda el enlace permanente.

3 respuestas a Obsolescencia: La pérdida en el software libre

  1. acisif dijo:

    Hoy me he encontrado un ejemplo:
    En python 2 esto funciona:
    print ‘Hola mundo’
    En python 3 ya no funciona.

  2. logic dijo:

    En el año 2002 pude comprarme mi primer PC, le instlé SuSE Linux 6.4 y utilice KDE 1.x. Recuerdo que habia un buen juego que era un clon del Pacman, para mi decepción cuando decidí instalar Mandrake Linux 9.0, que incluia a KDE 3.0, descubrí que ese clon del pacman ya no se incluia en KDE, fue mi primera gran desilusión. A lo largo de los casi 10 años utilizando GNU/Linux he comprobado muchas veces que no hay retro compatibilidad, ni siquiera en aplicaciones buenas. Las aplicaciones que consideramos útiles y que hoy estan incluidas en nuestra distro favorita, puede que en versiones futuras de esas distros ya no esten disponibles…

    • acisif dijo:

      Te puedo asegurar que desde el punto de vista del desarrollador, no te queda más remedio que adaptarlo a las nuevas versiones. Tratar de mantener la “retrocompatibilidad” es muy complejo desde el punto de vista de la seguridad del sistema.

      Por ello habría que buscar una estrategia dentro del software libre, para que las contribuciones no se pierdan.

      Un saludo

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s