Autor: Hiperion
Fecha:  2004-03-21
Descripcion:  Convivencia entre el software libre y el propieratio
Web Origen:   http://www.septeto.com/

Introducción

El software libre esta ganando adeptos, día a día, consiguiendo un mayor movimiento en los proyectos de software libre. Este fortalecimiento, esta trayendo tambien una nueva manera de pensar, y programar.
Sin embargo, esta nueva manera de pensar, tambien esta atrayendo a una serie de individuos, que no entenden bien el nuevo modelo, e impiden que crezca más, y se establezca como estandar. Estos participantes del software libre impiden que entre el mundo del software profesional, descalificando todo software que no es libre, olvidando que para que funcione el modelo de software libre deben cumplirse una serie de requisitos (Como bien dice Eric S. Raymond en "El caldero Mágico").
Este documento trata de clarificar aquellos puntos que resultan algo confusos.

Coste del software

Hoy en día, el coste de distribución (copia) de un producto software, es casi nulo, y salvo en muy contadas excepciones, no debe ser tenido en cuenta para evaluar el coste del software, pues la copia en si, no vale practicamente nada. No obstante, el software si tiene un coste, que es el coste de producción, que debe diluirse entre todas las copias que se realizan del mismo, o debe ser compensado por los servicios que genera.
Una de las grandes aportaciones del software libre, sin lugar a dudas, es el abaratamiento de los costes de producción, sin embargo, es un pequeño error considerar que el coste baja a cero, pues sigue teniendo un coste. Uno de los mayores costes de un proyecto libre, es conseguir que la comunidad se sienta implicada en el proyecto en cuestion.

Implicación de los programadores

Como bien indica Eric S Raimon, en "Cultivando la Noosfera", existe una motivación para que los desarrolladores tomen parte en los proyectos libres, unos por puro alturismo, y otros por devolver aquello que toman de la comunidad, y otros pocos, respetando las licencias GNU.
Sin embargo, hay temas importantes, que Raimon no trata en su documento, son de vital importancia, el primero de ellos, es el hecho de que para ser un buen programador, hace falta practica, de hecho, mucha practica, y segun el proyecto en cuestión, tener muchos conocimientos especializados.
Otro factor importante, es la complejidad de los proyectos, hoy en día los proyectos tienden a ser más, y más grandes.
Un último factor a tener en cuenta, del documento de Raimon, es el echo de que trata en exclusiva a los programadores individuales. Un programador puede colaborar mucho con el software libre, pero algo que es obio, es que los programadores no viven del aire.

Primeras Conclusiones

Desgranando lo que ya sabemos, obtenemos lo siguientes factores necesarios para la liberación del código fuente:

  • Debe existir una comunidad relativamente grande de gente interesada en el proyecto
  • Debe ser un proyecto técnicamente "agradable"
  • Los costes de producción deben de ser escasos, o ser de una amplia difusión

Es decir, que para aplicaciones muy verticales, o cuyo coste de producción es extremadamente alto (P Ej: Juegos, o programas de formulación), no tiene sentido a corto plazo la liberación del código. Puede darse el caso de que se libere cierto código una vez ha transcurrido un tiempo en el que se ha amortizado el producto (Como fue el caso del DOOM).

Los programas hechos por instituciones públicas (Universidades, colegios, pagados por el gobierno, etc....), no les influye la rentabilidad, por lo que en su caso concreto, no tendría sentido que los programas que hiciesen fuesen de código cerrado.

Otras consideraciones

En los casos en los que los costes de producción no se amortizan de manera inmediata con los servicios que genere el software producido, se verán abocados a mantener el código fuente cerrado (En especial aquellos proyectos con un coste de mantenimiento elevado), o a hacer una transición paulatina entre la fabricación y la liberación del código fuente.

Tampoco aquellas compañías que desarrollen software podrán permitirse liberar el código fuente, si tienen una competencia muy fuerte y numerosa (Y dicho sea de paso, en estos casos tampoco aporta grandes beneficios el codigo libre, pues los costes ya están reducido al mínimo), pues si bien es una apuesta de futuro, darán pistas a la competencia para que esta incorpore las mejoras de el producto, de modo que perdería competitividad en un mercado duro.

Un claro ejemplo de esto son los programas de gestión en España. En España hay una gran cantidad de productos, cada cual orientado a un segmento del mercado en particular, habiendo decenas de programas para todo ello, por lo que los costes de producción se compensan solo parcialmente con los servicios que se prestan, teniendo que depender en muchos casos de la venta para acabar de amortizar, y para tener beneficios (A algunos lectores les costará entender este concepto, pero lo cierto es que las empresas se crean con el motivo de generar beneficios. Una empresa sin beneficios no tiene sentido que exista). En este sector del mercado, yo no recomendaría que se liberasen los fuentes.

Licencias

El últrimo punto a tratar, es la posible convivencia de código fuente abierto, y código cerrado, que se regula fundamentalmente por las licencias a emplear, por lo que se debe estudiar la licencia que se quiere poner a un programa antes de ponersela.
Como se ha comentado en los puntos expuestos hasta el momento, existen programas que deben, o puede que se mantengan cerrados por motivos comerciales.
Pero no solo existen programas "completos", tambien existen multitud de librerías hechas bajo código fuente abierto, que permiten interconectar ls programas entre si, y qie abaratan los costes de producción de otros programas, pero ¿Bajo que licencia deben publicarse estas librerías?
Mientras que para una aplicación completa recomendaría la GPL, o la MPL, no así para las librerías. La creaciónde librerías facilita el trabajo los programadores, pero un programa cerrado no puede emplear una librería bajo la licencia GPL. Aquellos programas por definición cerrados (P Ej: Los juegos), tendrán un coste de producción superior si no pueden utilizar las librerías desarrolladas, por lo que quien pierde es el usuario. Si una librería solo sirve para realizar programas muy especificos, quizas si convenga el empleo de la licencia GPL, pero la gran baza del software libre es la integración entre aplicaciones, por lo que tampoco estas las liberaría bajo licencia GPL. Personalmente me inclino por la licencia MPL, en lugar de la LGPL, pero la idea es permitir una convivencia y una integración total (Si una empresa con productos cerrados abarata los costes de producción, podría llegar a ganar más con los servicios que con el producto en si, y entonces, liberarlo para que tenga una mayor difusión).
Todas las licencias que he leido están mas o menos bien, pero si hay una licencia que no recomiendo ni para programas ni para librerías es la BSD, pues no tiene la obligación de retorno en caso de que se invierta en el código obtenido.