Software Libre es una cuestión de libertad y por lo tanto jurídica.

¿Qué es lo que determina que un producto sea software libre? La respuesta no es otra que las facultades que el desarrollador de dicho producto entrega a sus usuarios a través del contrato de licencia[1].

Las libertades básicas que toda licencia libre debe contemplar son:[2]
Libertad 0: la libertad para ejecutar el programa sea cual sea su propósito.
Libertad 1: la libertad para estudiar el funcionamiento del programa y adaptarlo a tus necesidades -el acceso al código fuente es condición indispensable para esto.
Libertad 2: La libertad para redistribuir copias y ayudar así a tu vecino.
Libertad 3: La libertad para mejorar el programa y luego publicarlo para el bien de toda la comunidad -el acceso al código fuente es condición indispensable para esto.

En cuanto a la Libertad 0, también llamada Libertad de Ejecución, parecería innecesaria por obvia. Sin embargo, es en su parte final donde adquiere su verdadero sentido, pues es común dentro de los desarrolladores de software privativo limitar los posibles usos que se le darán al programa, prohibiendo, por ejemplo, el uso empresarial, militar, político, etc., o exigiendo la contratación de otra licencia para dar al software dichos usos. En definitiva, con la libertad de ejecución del software libre se asegura a los usuarios la facultad de utilizar el software para cualquier fin, sin necesidad de autorización de nadie.

La Libertad 1, también recibe el nombre de Libertad de Estudiar y Modificar, esta libertad está compuesta de dos facultades: estudiar y modificar el software y, supone una condición previa: el acceso al código fuente.

La facultad de estudiar tiene como premisa que todo usuario debe tener la posibilidad de conocer la manera en que opera el software que ocupa en su computador. De no ser así, nos encontramos con que las herramientas que manejan uno de nuestros bienes más preciados, nuestra información, operan de una manera desconocida para nosotros, con todos los peligros que ello puede llegar a presentar[3].

Por ello, el software libre entrega al usuario la facultad de conocer la manera en que dichas herramientas operan y, en caso de no contar con los conocimientos necesarios para hacerlo, contratar a cualquiera que los tenga, para que estudie y se asegure que el software que usamos cumple con todos nuestros requerimientos, necesidades y no tiene funciones oscuras o no deseadas.

En cuanto a la facultad de modificar, esta entrega al usuario la posibilidad de adaptar el software a sus necesidades concretas. Una vez más, esta facultad la puede ejercer el usuario por sí o encargar a otra persona que lo haga. Las posibilidades que esta libertad entrega a los usuarios son infinitas, por ejemplo: la traducción; modificación de elementos visuales; la modificación del comportamiento de software para hacerlo accesible a personas con alguna discapacidad.

Como ya se ha adelantado, para hacer uso de ambas facultades, debe cumplirse con una condición previa: esta es tener acceso al código fuente. Este acceso puede ser mediante la entrega del código conjuntamente con el software; colocando el código a disposición del usuario, por ejemplo: en línea; a vuelta de correo, previa solicitud; o, en definitiva, de cualquier manera que no resulte en una traba para dicho usuario[4].

La Libertad 2, también llamada Libertad de Distribución, consiste en la facultad que se entrega al usuario de distribuir copias del software, gratuitas o pagadas. Esta libertad se justifica en el hecho de que toda persona tiene el impulso natural de compartir lo que le ha sido útil, a lo menos, con su círculo más cercano. Esta conducta tan natural y deseable en el ser humano es prohibida por ciertas licencias de software privativo[5]. Además de restringir la facultad de compartir con otras personas, la mayoría de las licencias de software privativo restringen la posibilidad de instalar el software en diversos equipos.

La Libertad 3 o Libertad de Publicar, entrega al usuario que ha modificado el software (Libertad 1) la facultad de compartir con la comunidad el software mejorado. Esta es la conclusión natural de las tres libertades anteriores ya que si el software se puede utilizar, estudiar, modificar y distribuir, es de toda lógica que el software modificado y mejorado pueda ser publicado y de esta manera puesto a disposición de la comunidad, donde la idea es que el  proceso vuelva a repetirse.

Con el mecanismo antes señalado el software evoluciona de la misma manera que lo hace la ciencia. Para el mundo del software libre el conocimiento es algo que pertenece a todos; y todos, en la medida de sus facultades y condiciones pueden hacer uso de él.

Los anteriores son los elementos esenciales del software libre. A partir de ellos podemos elaborar una definición propia: software libre es todo sistema, aplicación, formato, y en general todo software cuyo código fuente esté a disposición de cualquier persona, a fin de asegurar a dicha persona, las libertades de ejecutar, distribuir, estudiar, modificar, y publicar dichas modificaciones.

Notas:

[1]Del contrato de licencia hablaremos más adelante.

[2]Stallman, Richard, “Software Libre para una Sociedad Libre”, op. cit. p. 45.

[3]La libertad 1 permite por ejemplo, detectar la existencia de “Backdoors” o “Puertas Traseras” o sea, un mecanismo oculto mediante el cual los conocedores del secreto pueden forzar la entrada al sistema y tener acceso e incluso manipular los datos a su antojo. Federico Heinz relata el caso de la “Puerta Trasera” de Interbase, en “Razones por las que el Estado debe usar Software Libre”.

[4]“Debe proporcionarse las fuentes, directa o indirectamente, pero siempre de forma fácil y asequible.”  Nonius Jorge, “Introducción a las Licencias de Software Libre” p.27

[5]Sobre la restricción a la tendencia natural a compartir:  Stallman, Richard “Software Libre para una Sociedad Libre” op. cit. p.172 y ss.

Anuncios

En este punto se hace necesario explicar el concepto de software libre.

En esta primera parte nos detendremos, por los motivos que más adelante se explica, en lo que el software libre NO ES, para luego, en una segunda parte buscar un concepto de software libre.

Software Libre.

Este concepto fue acuñado a finales de los años setenta, por  el desarrollador de software estadounidense Richard Stallman[1]. Esta denominación ha sido combatida, no así su contenido; sin embargo, creemos que es el nombre que mejor refleja la realidad de la que hablaremos.

Para saber a que se hace referencia al hablar de software libre, es necesario decir lo que NO ES. Esto debido a que en torno a cuestiones accidentales se han ido creando algunos mitos difundidos con bastante publicidad, los que pueden distraer la atención del lector llevándolo a conclusiones equivocadas sobre su realidad; en perjuicio de lo verdaderamente esencial: las libertades entregadas a los usuarios. Estos mitos son la gratuidad y las ventajas técnicas.

Software libre no es una cuestión de costo o pago asociado.

Desde su nacimiento ha existido la errada creencia que el software libre es o debe ser gratis. Esto por dos motivos:
En inglés, para software libre se utiliza la expresión Free software, la que puede tener dos significados literales, software libre y software gratis. Este doble significado, afortunadamente, no lo tiene el término en español software libre; y,
El software libre se ofrece, generalmente, al usuario a muy bajo costo o completamente gratis.

Sin embargo, la gratuidad puede o no estar presente; más aún, el software libre pagado existe, y es tan libre como el gratis; además, muchas personas y empresas lucran con el software libre.[2]

Por otro lado, tampoco todo software gratis es software libre, ya que existe una gran cantidad de software privativo que como mecanismo de promoción y distribución utiliza la gratuidad, lo que se denomina freeware[3].

Software libre no es una cuestión técnica.

Motivado tanto por las ventajas del sistema de desarrollo Open Source[4], como por la asociación que se hace del software libre al sistema operativo GNU/Linux[5], se tiene la errada creencia que lo determinante al hablar de software libre está en sus aspectos técnicos y de desarrollo.

Eric S. Raymond[6] explica en su ensayo La Catedral y el Bazar[*] la manera en que funciona el sistema de desarrollo Open Source estableciendo sus virtudes, las que giran en torno a la detección y depuración de errores en tiempos y costos impensados para los desarrollado tradicional, convirtiendo al desarrollo abierto en un modelo de eficiencia. El fundamento de lo anterior radica en un hecho simple: la cantidad de personas que están trabajando y analizando el código del programa[7].

El software libre no está restringido a una plataforma determinada, en todas las plataformas existentes en la actualidad se han desarrollado muchas aplicaciones de software libres, además GNU/Linux no es el único sistema operativo completamente libre, ya que existe, por ejemplo, toda la familia BSD[8].

Tampoco es un requisito para dar a un software el carácter de libre el que su creador ocupe el sistema de desarrollo Open Source, ya que dicho creador tiene la posibilidad de prestar o no oído a las sugerencias y mejoras elaboradas por los usuarios.

Notas:

[1]A  Richard Stallman se le considera el padre del software libre, ya que junto con crear el nombre ha hecho grandes aportes a él, tanto dentro como fuera del mundo de la programación. Como programador dirigió y escribió gran parte del proyecto GNU, sistema operativo casi completo que al agregarle el núcleo Linux, creado por el programador finés Linus Torbalds, se transformó en GNU/Linux o simplemente Linux (como es popularmente conocido) consagrándose como el primer sistema operativo libre completamente operable. Fuera del ámbito de la programación Stallman es el principal promotor del software libre, creó la Free Software Foundation y la licencia GPL, la que es usada en la mayoría del software libre existente en la actualidad, y sin la cual el software libre no existiría o no tendría la potencia que tiene hoy.

[2]Tanto es así que el propio Richard Stallman vivió algunos años del producto de la venta de copias de GNU.

[3]Ejemplos de este tipo de software son: Real Player, Internet Explorer, Safari Web Browser, Opera Browser, etc.

[4]Más adelante nos detendremos en la diferencia entre los conceptos Open Source y y software libre, sin embargo adelantaremos que en el presente trabajo hemos decidido reservar el término Open Source, para referirnos  al sistema de desarrollo promovido por la Open Source Initiative (OSI), ya que pese a ser un elemento presente desde el principio en el software libre, es  la OSI la que  lo sistematizó y logró interesar a la industria en las ventajas de éste.

[5]GNU/Linux o simplemente Linux es el primer sistema operativo completamente libre, fruto de la unión del Kernel Linux creado por Linus Torvalds  y los demás componentes del sistema GNU de Richard Stallman y la Free Software Foundation. La popularidad que ha adquirido dicho sistema lleva a mucha gente a pensar (erradamente) que software libre solamente existe dentro de él.

[6]Eric S. Raymond, cofundador de la Open Source Initiative, quién ha destacado en la promoción y difusión del software libre, principalmente a través de sus publicaciones, dentro de las cuales la de mayor importancia es “The Catedral and the Bazar”-La Catedral y el Bazar- donde explica el modelo de gestión y desarrollo de un proyecto de software libre, comparándolo a un bazar, en oposición al modelo de desarrollo del software privativo al que compara con una catedral. Dicho escrito marca un punto de inflexión en la historia del software libre, ya que capta la atención del mundo empresarial, en lo que culmina con la liberación del código del navegador Mozilla Firefox, lo que da inicio al acercamiento de la gran industria tecnológica al software libre.

[7]Incluso Stallman aprecia la existencia de esta ventaja en el desarrollo de software libre, “Cuando publiqué GNU-Emacs por primera vez —la primera parte del sistema GNU que la gente de verdad quería usar— y cuando empezó a tener usuarios, pasado un tiempo, recibí un mensaje que decía, «creo que he visto un fallo en el código fuente, y aquí esta el remedio». Y recibí otro mensaje, «aquí tienes código para añadir una característica nueva». Y otro remedio para un fallo. Y otra característica nueva. Y otra, y otra, y otra, hasta que me empezaron a llover tan rápido que sólo hacer uso de toda esta ayuda que estaba recibiendo suponía mucho trabajo. Microsoft no tiene estos problemas. [Risas del público]” Stallman, Richard, Transcripción de una conferencia en la New York City University, el 29 de mayo del 2001, “Software Libre para una Sociedad Libre” p. 147.

[8]”BSD son las siglas de «Berkeley Software Distribution». Así se llamó a las distribuciones de código fuente que se hicieron en la Universidad de Berkeley en California y que en origen eran extensiones del sistema operativo UNIX de AT&T Research..” Lehey, Greg “¿Qué es BSD?”, Traducción de Baz, José Ramón y Carrasco, José Vicente

Continuando con el traspaso del trabajo de mi memoria al blog, vamos con la segunda parte:

2.-El Problema del Lenguaje y el Código Fuente.

Otro concepto que es necesario aclarar, es el de “código fuente”. Sin embargo, antes de explicar lo que es el código fuente, y para entender su importancia, debemos aclarar el problema del lenguaje.

Las computadoras al ser máquinas que manejan información necesitan de un lenguaje. Teniendo en consideración que los circuitos de la máquina responden de manera simple y natural solamente a dos estímulos, esto es, la existencia o ausencia de voltaje, su lenguaje óptimo es uno binario. Esto significa que las letras, números, signos de puntuación y otros caracteres son sustituidos  por números de ocho dígitos, formados por la combinación de dos valores: ceros y unos que  se usan como abstracción de la presencia y ausencia de voltaje[1]. Existen varios lenguajes de máquina, pero el más utilizado es el lenguaje ASCII[2] y sus variantes.

Si el software es un conjunto de instrucciones para el computador, dichas instrucciones deben  estar escritas en lenguaje de máquina para que éste las entienda, pero, debido a la complejidad de dicho lenguaje (visualmente sólo se aprecian grupos de ceros y unos), trabajar con él es prácticamente imposible para el operador humano. Pese a lo anterior, en los primeros tiempos la interacción entre el computador y el operador  se hacía en lenguaje máquina, lo que acarreaba grandes problemas, y restringía de manera notable el campo de, la entonces incipiente, tecnología de la información. Este problema vino a ser solucionado con la invención de los compiladores.

Los compiladores son programas o herramientas encargadas de compilar. Un compilador toma un texto (código fuente) escrito en un lenguaje de alto nivel y lo traduce a un lenguaje comprensible por las computadoras (código objeto)[*].

La existencia de los compiladores permite a los programadores escribir sus programas en un lenguaje fácilmente comprensible para ellos y otras personas, lo que agiliza su trabajo y permite la rápida revisión en caso de errores, salvando todas las dificultades que el lenguaje máquina significa. Ese lenguaje se denomina lenguaje de programación de alto nivel[3].

El software antes de ser compilado, es decir cuando todavía se encuentra en lenguaje de programación, se denomina código fuente[*]. Teniendo acceso a éste, una persona con los conocimientos necesarios, puede  determinar el funcionamiento e incluso introducir modificaciones al software.

[1]La explicación del funcionamiento del lenguaje máquina escapa al objeto de este trabajo, pero, creemos que es necesario demostrar su complejidad, por lo que nos valdremos de un ejemplo, la palabra ANA en ASCII es 01000001 01001110 01000001.

[2]Sigla en inglés de “American Standar Code for Information Interchange” -Código Americano Estandarizado para el Intercambio de Información-. En estricto sentido el lenguaje ASCII consta de solamente 7 dígitos o bits, pero existen complementos que agregan un octavo dígito o bit con la finalidad introducir acentos y caracteres inexistentes en el idioma inglés, como por ejemplo el ISO-8859-1 que posee caracteres apropiados para el español, portugués, francés, danés y otras lenguas latinas

[3]Según el Diccionario Informático Alegsa, lenguaje de programación de alto nivel es un “tipo de lenguajes de programación que permite al programador escribir programas (algoritmos) que son más o menos independientes de un tipo particular de computadora (del hardware). Estos lenguajes son considerados de alto nivel porque son más parecidos al lenguaje natural humano y más lejanos al lenguaje de las máquinas.”

Thomas Vinje y Jonathan Zuck en la BCN (Biblioteca del Congreso Nacional)

Ayer Miércoles 18 de Junio ’08 tuve la suerte de ser invitado por el profesor guía de mi memoria a asistir a una charla/mesa redonda en la Biblioteca del Congreso Nacional, la que tenía como principales expositores a dos de las más importantes autoridades a nivel global en temas de interoperabilidad, defensa de la propiedad intelectual, estándares abiertos y mercado de software. Por un lado el señor Jonathan Zuck y por el otro, el abogado y profesor Thomas Vinje.

Para darles una idea rápida sobre la postura de cada uno diremos que el abogado Thomas Vinje participó en los famosos juicios contra Microsoft en Europa por sus productos Windows Media Player e Internet Explorer, juicios en los que la compañía salió derrotada. Por su parte el señor Jonathan Zuck preside una organización de empresas de software en EEUU (Association for Competitive Technology) y es un importante orador a favor de la protección del software mediante patentes, y otros mecanismos.

Las charlas partieron con una breve introducción del Senador Guillermo Vásquez quién deslizó una gran noticia: en la comisión del Senado el proyecto de ley que modifica la ley de propiedad intelectual mantiene la redacción del nuevo artículo 8º, que traía desde el Primer Trámite Constitucional. Lo que a mi parecer es una excelente noticia para el mundo del software libre y los usuarios de software en general. (Pronto les hablaré de ello).

Luego, tanto en la charla como en la mesa redonda, el abogado Vinje defendió y propuso como principios necesario para la existencia de un mercado sano de software:

1.- Una “adecuada” protección a la propiedad intelectual y

2.- La interoperabilidad y como elementos necesarios, entre otros, para que dicha interoperabilidad exista: a) el uso de estándares abiertos (en lo posible obligatorio para la autoridad y bajo criterios señalados por ésta); b) una legislación que permita la ingeniería inversa (bajo principios similares a los del fair use estadounidense).

Por su parte, Jonathan Zuck planteó que la interoperabilidad existe porque a los “grandes” sus clientes les “exigen” que interoperen con los “pequeños”, o sea casi por generación espontánea; además que los estándares no deben ser exigidos por la autoridad, sino que se deben crear como estándares “de facto”, para él este mecanismo es mucho más eficiente; además defendió un argumento (a mi gusto el más falaz de todos) sobre “el tipo de competencia que queremos” el que dice más o menos así: “Si permitimos y fomentamos los estándares abiertos y la ingeniería inversa, todo se estandariza y se unifica a tal nivel que significaría una tranca a la innovación, por lo que la competencia no se daría por el mejor producto, ya que todos serían iguales, sino simplemente, por el precio. Situación que por efecto de las economías de escala termina sacando a los pequeños del mercado -ellos no pueden entrar a una competencia de precios-”
Olvida que si hablamos de estandarización de formatos e ingeniería inversa restringida a lo necesario para lograr la interoperabilidad, no estamos estandarizando las aplicaciones en sí, ya que cada desarrollador podrá mejorar su aplicación en TODOS los otros aspectos que no tienen que ver con los formatos. Además, no debemos olvidar que el costo de la licencia es el más importante, pero no el único aspecto que influye en el TCO.

Cabe mencionar que asistió un representante del Gobierno, (del ministerio de Economía) que nos explicó el norte que sigue nuestro Gobierno. Dichos criterios van en la misma senda que lo consagrado en normas como el Decreto 81. De tal forma que es mucho más cercano a lo planteado por el abogado Vinje. Esperemos que no aparezca un nuevo Ferreiro.

En resumen, fue una gran experiencia. Para mi lo más grato fue escuchar de la boca de alguien como Thomas Vinje conclusiones muy similares a las plasmadas en mi memoria. Y sin duda, confirmar que nuestra autoridad tiene plena conciencia de los alcances de esta discusión.

p.d. disculpa a la gente del Planeta ubuntu-cl por el off-toppic, pero seguro que esto les interesa.

Cómo van las cosas mi querido 14.57….-6 (1)se transformará en algo así como 14.57….-6@live.com, seguramente esto será disfrazado como un avance, algo como la cuenta del Chileno del Bco. Estado, pero hay una gran diferencia, esa cuenta esta hecha para ofrecer un servicio gratuito a los chilenos, llegando a personas que no tienen acceso a una cuenta de cajeros automáticos, porque hay chilenos a los que pagar más de $3.000 por un servicio les duele en el alma y por último, cada persona es libre de solicitarlo o no. En la forma como se plantea este servicio que nos dará Microsoft un día seré notificado que mi cuenta web universal es tal (algo como lo que puse arriba) y toda relación que tenga con el estado será notificado a través de ella. -Mientras escribo esto se me revuelve el estómago-
Probablemente ante ello no quede mas remedio que interponer un recurso de protección, un triste saludo a la bandera, bandera que un Ministro repulsivo vendió sin pensarlo dos veces, lo peor que un Ministro de un Gobierno por el que voté, de verdad me produce asco.

Una coincidencia mientras escribo esto suena Comfort Eagle de CAKE.. parece un presagio ¿no?:

To resist it is useless
It is useless to resist it
His cigarette is burning
But he never seems to ash

(1) -Chile- Cédula Nacional de Identidad.

Powered by ScribeFire.

Fideicomiso no tan ciego

julio 18, 2007

Hoy mientras almorzaba escuchaba las noticias en la radio, hablaban del Fideicomiso Ciego de Piñera. Hay algo que me da vuelta en la cabeza hace mucho tiempo, es verdad que Tatán Piñera es uno de los hombres con mas plata en Chile y que tiene intenciones de ser Presidente de la República, pero seamos sinceros con los amigos, llegado el caso no creo que Piñera sea tan tonto como para beneficiar a alguna de sus compañías con políticas públicas, si el pobre tiene a todos los ojos encima de él.
A mi, para ser franco, los que me dan miedo son otros, esos que no sabemos donde tienen metidas sus platas, esos que tienen tentáculos que nadie puede ver.
De verdad creo que es es algo que se debe solucionar por ley, y legislar seriamente, que la norma no sea un chiste hecho a la medida. Apuesto mi peso (que es bastante) en oro que muchos Diputados o Senadores que pertenecen a la comisión de agricultura tiene su fundito productivo, a la comisión de pesca su negocio a fin; y para que hablar de los que están metidos en la Administración. Y cómo nadie sabe, porque no son dueños de LAN o CHILEVISIÓN…
Lo más probable es que no vote por Piñera, pero al Cesar lo que es del Cesar y todos (más o menos) sabemos donde tiene los ahorros para la vejez, de los otros líbrame madre!

Éstos son dos proyectos de Ley, que no se están discutiendo en Francia, Alemania o Italia, sino que Pedro Montt con Av. Argentina, nada más y nada menos que en nuestro Congreso Nacional.

Estoy proyectos de ley vienen a modificar la ley del consumidor en los aspectos que sus nombres indican, les dejo los enlaces para quienes quieran descargarlos.

Proyecto de Ley de Neutralidad en La Red

Proyecto de Ley sobre Velocidad Mínima Garantizada

Partiremos por esta última, y a modo de comentario les digo que el Proyecto sobre Velocidad Mínima garnatizada establece que, las velocidades entregadas por los proveedores como servicios de “banda ancha”, no podrán ser inferiores al límite menor establecido por la Unión Internacional de Telecomunicaciones (UIT) para dicho tipo de conexiones. Ya que si no lo saben lo que tenemos por Banda Ancha no es ni la mitad de lo que dichos límites establecen, una conexión para ser considerada Banda Ancha en el resto del mundo debe tener una velocidad de 1,5 Megas, en Chile con 200 Kilos los patuos ya te lo venden como Banda Ancha.

En el otro artículo que contempla este Proyecto, establece que la empresa proveedora deberá hacer referencia en la publicidad y en el contrato a la “velocidad mínima garantizada” (…), la cual se deberá poder suministrar en cualquier momento y bajo cualquier condición al abonado. O sea, que si te venden un plan de 600 Kilos esos serán el mínimo de velocidad a la que debe andar tu conexión. Con esto se pone fin a las ventas de planes engañosos donde te venden el plan por una velocidad que con suerte alcanzas por una hora al día.

En una próxima ocasión les comento sobre el proyecto de Ley de Neutralidad en La Red, ya que por su importancia merece un comentario largo e individual.
Es de toda lógica que estos proyectos serán, y ya lo están siendo, resistidos por un sector de la política, por lo que la actitud de los usuarios de la red, en general, no sólo los rebeldes de siempre, ya que esto es algo que afecta a pingüinos, diablitos, manzanas y ventanas por igual, debe ser fuerte y organizado, ojo no se esta pidiendo nada gratis, simplemente que me entreguen el producto por el que pago. Por lo que desde ya les quiero invitar a unirse al movimiento por la aprobación de estas leyes en la pagina de NeutralidadSi, donde también podrán encontrar mas información al respecto.

http://www.neutralidadsi.org