Copyleft: Idealismo pragmático

Terminamos la pasantía en Software Santa Fe. Hemos aprendido mucho con César. Trabajamos con .NET en un proyecto de la empresa. Lamentablemente la mayor parte del tiempo estuvimos con Visual Basic… Seguramente escucharon mucho sobre él: sépanlo, es un lenguaje horrible.

También entregamos el TP final de Diseño e Implementación de Estructuras de Datos, el cual ya comenté algo en un post anterior. Una consecuencia del mismo fue un evaluador de expresiones matemáticas. Si escribíamos “5+x*8/(1+x!)” con algún valor para x nos devolvía el resultado. Todo el código lo liberamos (los autores son Sebastián Galiano, César Sandrigo y yo) bajo la GNU LGPL. Es decir que, sino me equivoco, el código puede ser linkeado por un programa libre o no-libre, y en caso de ser una librería puede ser “usado por” un programa propietario. Las restricciones copyleft son aplicadas a la librería misma, y no se “contagian” (como pasa con la GPL) a los programas que enlazan a ella.

El repositorio que posee el código fuente del trabajo práctico (Java), que tiene un graficador y aproximador, es http://opensvn.csie.org/tp_died.

La gente de SSF (Software Santa Fe), en uno de sus proyectos, necesitaba un software parecido a éste. Le propusimos utilizar el nuestro, haciéndoles saber que éste era libre, y los cambios hechos debían ser publicados también bajo la misma licencia. Después de consultarlo con la gente que toma estas decisiones, aceptaron y comenzamos a trabajar. El trabajo consistió en pasar casi la totalidad del código Java (del TP) a C#, y adaptarlo a las necesidades del proyecto de SSF. Pronto voy a subir los cambios de las últimas revisiones del evaluador escrito en C#, que si bien es un poco específico para el proyecto en el que trabajamos, no deja de ser una pieza de software útil.

Sin entrar en detalles con esto, y yendo al punto, hace unas semanas descubrí un artículo de Richard Stallman que me gustó mucho, y que actualmente terminé de traducir, pero que falta revisar. En unos días voy a contactar con la gente encargada de manejar este tipo de contribuciones.

Me voy a atrever a citar traducidas algunas de las palabras de Stallman. Puede ser posible que haya errores de traducción. Si saben inglés, es mejor que lean el original.

Mi trabajo en el software libre es motivado por una meta idealista: difundir la libertad y la cooperación. Quiero fomentar la difusión del software libre, reemplazando al software propietario que prohibe la cooperación, y de esta manera hacer que nuestra sociedad sea mejor.

Palabras muy bonitas. Tan bonitas como las de Jesús, que coloqué en el post anterior. Palabras que sin actos, sin hechos, son solamente palabras que se las lleva el viento. Sin embargo en el caso de Stallman parece estar muy comprometido con esto.

Este ejemplo es muy interesante:

Considere GNU C++. ¿Por qué tenemos un compilador C++ libre? [Solamente porque la GNU GPL dice que tiene que ser libre]. GNU C++ fue desarrollado por un consorcio de empresas, o MCC, comenzando a partir del compilador C GNU. MMC normalmente lanza su trabajo como software propietario, tan propietario como éste pueda ser. Pero ellos [crearon la interface] de C++ como software libre, porque la GNU GPL dice que ésta era la única manera en que ellos podían liberarlo. La interface para C++ incluía muchos archivos nuevos, pero como ellos iban a ser [linkeados] con GCC, la GPL se aplicaba a ellos. El beneficio para nuestra comunidad es evidente.

Quizá sea una buena idea tomar como costumbre liberar nuestros trabajos prácticos como software libre. Creo que las licencias adecuadas son la GPL o LGPL. ¿Por qué? Porque queremos (¿queremos o no queremos?) que nuestro trabajo siga siendo libre. Por eso ponemos esas restricciones en nuestro código. Como dice Stallman en el artículo, usamos el copyright para darles a otros colaboradores una ventaja: pueden usar nuestro código.

Estas palabras me gustan mucho:

La GNU GPL no es el Sr. Muchacho Bonito. Dice “no” a algunas cosas que las personas les gustaría hacer. Hay usuarios que dicen que esto es algo malo–que la GPL “excluye” a algunos desarrolladores de software propietario quienes “precisan ser traídos a la comunidad del software libre.”

Las palabras de Richard siguen en una dirección un poco distinta a la que voy a tomar yo ahora. Una vez leí que la GPL no es verdaderamente libre, por las restricciones que impone. ¿Ustedes qué opinan? Creo que también mencionaba a la BSD, y que ésta sí es realmente libre, ya que permite hacer casi cualquier cosa con el código.

En este punto se puede hacer una analogía con la libertad del hombre. Un hombre que es alcohólico, ¿es libre? Un día él, con su propia libertad, y con los quizá muchos problemas de su vida, decidió beber. Lo mismo pasa con un drogadicto. Son decisiones que afectan nuestra libertad. Alguien que sale todos los fines de semana, se emborracha, anda con un montón de mujeres, se droga… ¿es un hombre libre? Pareciera que sí, porque hace lo que quiere. Quizá mas adelante, por alguna razón se de cuenta de que llevaba una vida infeliz, pero que no es fácil volver todo a atrás. ¿La libertad se trata de hacer, simplemente, lo que queremos y tenemos ganas, es decir, dejarnos llevar por nuestros impulsos?.

No hay que olvidar que también, además de libres, somos inteligentes y tenemos voluntad: ¿por qué no usar la inteligencia para reconocer aquellas decisiones y actos que pueden estropear nuestra libertad, y la voluntad para decirles “no”? En sus pensamientos sobre el fútbol, el cardenal Joseph Ratzinger (que todavía no era Papa), decía que “la libertad del hombre se alimenta también de reglas y de autodisciplina”.

Muchas veces algunos preguntan: ¿por qué tu religión no permite tener relaciones sexuales antes del matrimonio? Y la respuesta se trata de lo que venimos hablando. Hace un tiempo leí unas palabras del Papa Benedicto XVI dirigidas a los jóvenes sobre el tema. Queremos ser felices, pero hacer lo que queremos siempre en todo momento. Sería como querer, en la vida, ser un gran futbolista, pero emborracharse todos los días e ir a las prácticas cuando yo quiero. No se puede… hay que renunciar a algunas cosas para alcanzar otras más importantes.

Esas pequeñas costumbres aparentemente inofensivas crean hábitos. Y un hábito, si no se controla, se transforma en una necesidad. Recuerdo una frase de San Agustín que dice algo así.

En otra parte del artículo, Stallman habla de resistir a las propuestas de algunas grandes empresas que dicen a los programadores algo como “Dejanos utilizar tu código en nuestro programa propietario, así mucha gente lo va a utilizar”. Es tentador, pero hay que resistir, dice Stallman, pensando en los objetivos a largo plazo que esta resistencia a la presión traerá. Increíble… esta es realmente la actitud que debemos tomar ante otras tentaciones de la vida, en la cual muchas veces caemos porque olvidamos los beneficios que la firmeza en decir “no” nos va a dar.

Finalizo con las siguientes palabras del “evangelizador” del software libre:

Pragmáticamente hablando, pensando en objetivos de más largo plazo nos fortalecerá para resistir a esta presión. Si enfocas tu mente en la libertad y nuestra comunidad que podemos construir manteniéndonos firmes, vas a encontrar la fortaleza para hacerlo. “Mantente firme por algo, o caerás por nada.”

Wow… ¡que buena frase esa última!. Similares, muy similares son las palabras de Xavier Caballero en la reflexión de un evangelio, que en un post anterior transcribí:

Lo verdaderamente asombroso es que la inmensa mayoría de las personas no luchan por «ser» alguien, sino por «tener» algo; no se apasionan por llenar sus almas, sino por ocupar un sillón; no se preguntan qué tienen por dentro, sino qué van a ponerse por fuera. Tal vez sea ésta la razón por la que en el mundo hay tantos y tantas marionetas y tan pocas, tan poquitas personas. Sí, hay que amar la lucha. Creer en algo muy serio. Luchar por ello. Seguir luchando cuando nos cansemos. Seguir adelante cuando nos cansemos de caminar.

Creo que Stallman es un ejemplo de una persona que cree en algo y lucha por eso. En este sentido, se parece muchísimo a un verdadero creyente de alguna religión, como un cristiano, un judío o un musulmán, que ante tantos obstáculos que aparecen en su camino por mantener su fe, ante tantas dudas, ante los insultos y risas, se mantiene firme. Porque cree seriamente en algo, y lo defiende, aún en el cansancio.