La alternativa que presentamos a los problemas descritos es muy simple, desde el punto de vista conceptual, a la vez que muy compleja por las implicaciones e impactos sobre los modelos establecidos y aceptados de uso y desarrollo de software, y de tecnologías de información en general. Los impactos son de índoles técnica, económica, social y política.
Esta presentación debe ser, evidentemente, breve. Sin embargo, la cantidad de material de estudio sobre este tema es asombrosamente vasta. Es suficiente hacer una búsqueda en Internet, en www.altavista.com, del término "free software" para obtener 61´892,874 referencias.
Si analizamos lo que se debe buscar en el software libre para que sea capaz de reemplazar el modelo comercial, llegamos al siguiente resumen.
Características deseables del software de una computadora actuando como servidor:
En la perspectiva de las máquinas de escritorio (desktop), o clientes, las características que se deben exigir son:
A manera de ejemplo del éxito que el software libre está teniendo en todo el mundo, dígase acerca del sistema operativo Linux (pieza muy representativa y fundamental de ese éxito) lo siguiente:
Las ventajas del modelo de software libre se pueden resumir de muchas formas. Creemos que la más descriptiva atiende a las diferencias entre los usuarios potenciales del mismo.
Ventajas del modelo del software libre:
Mucho se ha hablado de algunos esfuerzos para lograr la portabilidad de software entre diversas plataformas. Diferentes aproximaciones existen, de las cuales dos se distinguen por que han mostrado muy interesantes resultados: la portabilidad a nivel de código binario (Java, por ejemplo) y la portabilidad a nivel de código fuente.
La primera, aunque es técnicamente muy retadora e interesante, ha mostrado, quizá como resultado de lo mismo, muchos problemas para su adopción generalizada. De tales problemas se distinguen cuatro:
Por otra parte, la portabilidad a nivel de código fuente es un esfuerzo que cuenta con una mucho mayor experiencia, tanto en el rubro de soluciones técnicas concretas como en el de adopción de estándares. Tiene también desventajas, entre las cuales se distingue la necesidad de recompilar las aplicaciones para cada plataforma de interés. Sin embargo, contra esa desventaja existe un número de ventajas que la hacen aparecer, creemos, como la forma racional y viable de lograr la portabilidad real.
A manera de ejemplo, en materia de interacción de las aplicaciones con el API del sistema operativo existe un estándar tan difundido y aceptado que se ha vuelto exigencia: se llama Posix. Si se escriben aplicaciones en C o C++ que, en su dependencia del sistema operativo se ciñen a lo que dicta el estándar, su portabilidad en ese sentido es completa.
Por otra parte, cuando se trata de los aspectos particulares de la compilación en cada ambiente de desarrollo, existe en Unix un conjunto de herramientas de autodetección del entorno de desarrollo y de la preparación de los parámetros para la compilación, que simplifican en grado sumo tal labor y la vuelven, en la mayor parte de los casos, trivial. Dichas herramientas, entre otras cosas pueden hacer lo siguiente:
A cambio de la aparente dificultad en la recompilación de las aplicaciones, se obtiene como beneficio la eficiencia de un código que se ejecuta siempre en su plataforma nativa, con la funcionalidad idéntica en todas la plataformas.
El software libre ha demostrado su calidad, muy por encima de las correspondientes aplicaciones comerciales, de la siguiente forma: