May 29, 2007.

Divide y vencerás

Muchos creen que el mundo de software es solamente complicado por su código, ese montón de 0 y 1 o esa cantidad de líneas en un lenguaje de programación concreto.

Luego, a la hora de implementar o usar el software se descubre que es complicado por su uso, porque falla, porque no instala, porque se vuelve obsoleto, porque llueve y porque hace sol tambión.

Pero no termina allí. Es notoria la confusión en cuanto al licenciamiento, uso y distribución del software.

Por lo general se tiene la mentalidad de que:

Todo software comercial es costoso, monopolista y cerrado

y

Todo software "open source" es abierto, gratis y libre

Al igual que un programa tópico esta compuesto de diferentes partes, la parte económica y social del mismo tambión. Suponiendo un software que se va a distribuir, por cualquier razón, un programa completo consta de:

Un(os) autor(es)

Bueno, todo código al final tiene uno o varios autores, quienes diseóan y programan el sistema. Por defecto, todo el material del programa le(s) pertenece(n) exclusivamente por la leyes internacionales de derechos de autor, a menos que de alguna manera hayan dado un paso al respecto.

Código fuente

Todo programa requiere código fuente, las instrucciones que se escriben en un mas-o-menos-comprensible-para-humanos lenguaje de computador. Este es el indispensable para poder corregir y mejorar el programa.

Código compilado

Otro programa se encarga de "compilar" o convertir ese código fuente en un sistema binario que pueda ser ejecutado por la móquina.

Archivos anexos

Como pueden ser los archivos de ayuda, imagenes y demós.

Licencia

El cual es el contrato de uso del programa.

Si un programa no tiene una licencia explicita, es difícil saber qué hacer al respecto (como no soy abogado, no tengo idea, y la idea que tengo, me la guardo para que luego no me llame de la carcel alguien quejándose de mi consejo).

Por eso, si Ud. es un desarrollador y no especifica una licencia, por favor háganlo.

Una licencia ES UN CONTRATO. Es por eso que es tan complicado como cualquier otro contrato, y para muchos, incomprensible. Como muchos contratos, pocos lo leen y menos lo entienden, pero como tambión muchos atestiguaran, puede volverse en contra y patearnos en el hógado.

Por eso, es indispensable buscar asesoría legal al respecto. La razón? Los abogados saben de problemas legales, incluso problemas que uno como programador o usuario NI SE IMAGINA.

Como desarrollador, AUN SI SE ELIGE UNA LICENCIA OPEN SOURCE, es una señal de responsabilidad revisar el mismo por un abogado, en especial si el software o sitio web o lo que sea va a tener distribución significativa o va a ser usado bajo serias condiciones (por ejemplo, al manejar dinero). La razón? Las leyes varían de país en país y además - y es posible que las cláusulas de una licencia copiada de internet sean ILEGALES en el país.

Cuales? No sé. Yo no soy abogado, **ningún **desarrollador sin experiencia legal esta capacitado para saber en que rayos se esta metiendo, de igual manera que un abogado sin experiencia en desarrollo podrá entender porque solo hay 10 tipos de personas en este mundo: Los que entienden binario y los que no (-i.e. si quedo en blanco es un chiste de programadores-).

Sistema de distribución

O sea, como se hace llegar al usuario final. Puede ser copiando archivos, imprimiendo el código en papel, descargando de un sitio, obteniendo el archivo binario, o el código fuente.

Al final se reduce en el "open source" que contrario a la creencia popular, nada tiene que ver con hippies que promulgan la libertad y el anti-monopolio, ni mucho menos significa "gratis".

"Open source" significa "Código abierto" o sea, que se distribuye el programa en sus archivos fuentes para su posterior compilación, que es algo ótil en manos de un programador y puede-que-si-o-no ótil para el resto de la gente.

Y esta el "binary" (o: "código binario") que no significa, como muchos creen, que las libertades de la gente estan negadas, que es monopolista y demós chorradas.

Solo quiere decir que el código esta "cerrado" porque el software esta compilado en archivos binarios, y por lo tanto a menos que seas un operador de la matrix, no entenderós todos esos caracteres raros.

Es por eso que al final todos los programas "open source" se transforman en "binary" de forma natural. SIN LA LICENCIA, no se puede presumir absolutamente nada acerca de lo que "open" y "closed" significa.

Un modelo económico

Entiendase por el mismo, como el mecanismo de integración al mundo real.

Puede ser por medio de pagar el diseóo, el desarrollo, la entrega, la distribución, la capacitación, o puede ser pagando por todo o por ninguno de los anteriores (en economia, sea como sea, se "paga" el tiempo en emplear algo, en saber usarlo, en costos indirectos como la luz y el agua, etc... por eso es que no hay nada absolutamente gratuito).

Puede que haya una motivación intelectual, espiritual, monetaria, o similar, o todo junto u otras. El modelo económico no esta directamente ligado al software. Es por eso que hay software "cerrado" o "closed" qué sale más barato que el "abierto" y al revés también.

Al final, el dueóo del software debe mezclar todos los elementos para traducir un aburrido programa de computador en un producto, o sea, en algo que se puede usar, entender, distribuir y desechar. Asi que al final, es importante de parte y parte entender cuales son las motivaciones ecónomicas del programa y bajo que contrato (licencia) se da derecho al uso del mismo.

O puede que darle "siguiente siguiente" sirva también hasta que llegue la policia ;).