martes, 10 de junio de 2008

Mi ordenador es libre

El trabajo de los programadores es producir programas de ordenador (o software). Esto es todo lo que suelen saber los no iniciados sobre el tema.

La gente corriente no suele conocer nada de la técnica con la que se crean los programas, más allá de que la herramienta utilizada es un ordenador. Sin embargo todo el mundo tiene unas nociones más o menos profundas (o vagas) sobre otros temas más familiares, por ejemplo: cómo se construye un edificio, o un coche, o cómo se produce la electricidad. Forma parte del saber común o cultura general.

Pues bien, me propongo aclarar algunos conceptos sobre el tema. No se asusten, que va a ser un artículo muy ligero, de verdad.
  • El software lo crean (escriben) programadores humanos, con la ayuda de herramientas que también son otros componentes software escritos por otros humanos, que también usaron herramientas software, que... y así sucesivamente. Si, pero ¿qué herramienta usó el primer programador? La respuesta, claro, es: circuitos eléctricos (hardware). Es decir, el primer ordenador se programó modificando directamente su hardware. La evolución ha sido espectacular, no me lo negarán.
  • Los ordenadores no entienden el lenguaje humano, es decir, no es posible decirle a un ordenador "programa el Windows y cuando acabes me avisas". De hecho no es posible decirle nada porque un ordenador no tiene ninguna inteligencia, es sólo una máquina muy sofisticada que ejecuta las órdenes que se le han programado (los seguidores de las películas de Terminator explicarán que el fin de la Humanidad ocurrirá cuando un ordenador tome conciencia de su propia existencia, pero eso es otra historia).
  • Los programadores escriben los programas en un lenguaje mucho más reducido que el lenguaje que habitualmente hablamos pero también mucho más preciso, conocido como lenguaje de programación. El programa hay que traducirlo al lenguaje que entiende el ordenador (y ya hemos visto que entiende no significa comprende, si se me permite el juego de palabras). La traducción se realiza con otros programas (¿recuerdan las herramientas de las que hablábamos antes?) llamados compiladores.
  • Para fijar términos hay que aclarar que el programa original escrito por el programador se denomina código fuente y el resultado de la tradución, código ejecutable.
Lo importante es recordar que...
...una vez que el código fuente ha sido traducido al codigo ejecutable ya no se necesita para nada el primero.
De esta pequeña verdad ha nacido toda la potente industria informática y también un movimiento social que se rebela contra ella.

Software privativo y software libre

(Nota para puristas aficionados: usaré el término software privativo y no software propietario porque es el utilizado por la Free Software Foundation y porque esta última expresión es un anglicismo horrible).

Lean y asómbrense: El software que han comprado no es suyo. "¿Cómo que no? -- dirán algunos -- Si tengo factura y todo." Pues no. Y si no se lo creen pueden comprobarlo en el acuerdo de licencia que han aceptado al instalar cualquier pieza de software privativo (ese tocho de texto que aparece durante la instalación y que nadie lee). Lo que han adquirido es una licencia de uso, que les permite utilizar el software para los objetivos y en el contexto que el fabricante considera oportunos, pero nada más. Ni siquiera tienen (normalmente) el derecho a revenderlo. Y mucho menos a modificarlo para adaptarlo a sus necesidades específicas. De hecho, tampoco pueden ni siquiera intentar comprender cómo funciona por dentro.

Si estas condiciones se aplicaran a cualquier otro producto estoy seguro de que no lo querríamos comprar. Imaginemos que compramos un coche y el fabricante nos impone la condición de que sólo lo podemos utilizar los días laborables y en autopista de tres carriles, y que debo repostar únicamente gasolina de marca Repsol. Además, el coche no es mío sino que sigue perteneciendo al fabricante hasta el fin de su existencia y la tapa del motor está cerrada con una llave que no me entregan.

¿Suena poco razonable, verdad? Pues eso mismo que no aceptaría para su coche sí que lo está aceptando para su ordenador.

¿Hay alternativa? Afortunadamente, sí.

Se denomina software libre al que no impone ninguna de las limitaciones anteriores a su usuario. El término fue inventado por Richard Stallman, el fundador de la Free Softwre Foundation y se aplica al software que otorga a su usuario las siguientes libertades:
  • Libertad 0: Ejecutar el programa para cualquier propósito.
  • Libertad 1: Estudiar y modificar el programa.
  • Libertad 2: Copiar el programa para compartirlo con otros.
  • Libertad 3: Mejorar el programa y publicar las mejoras de forma que todos se puedan beneficiar de ellas.
Las libertades 1 y 3 requieren el código fuente (¿se acuerdan de él, no?) porque no es práctico ni a veces posible entender y modificar el programa a partir del código ejecutable.

Una vez explcado lo anterior, ya podemos decir que se denomina software privativo al que no es libre, es decir, el que no respeta todas las libertades anteriores.

El conflicto

El sector de la industria informática que se dedica a la producción de software basa su modelo de negocio en la imposición de restricciones al software que comercializan. Y la mejor forma de hacerlo, aparte de imponer unas condiciones de utilización con muchas limitaciones es no entregar el código fuente al usuario sino solo el código ejecutable. De esa forma será físicamente imposible la modificación del software (ojo, porque legalmente ya es imposible por la licencia de utilización).

Y los lectores que no son programadores dirán "Y a mí ¿qué? No tengo los conocimientos para modificar un programa".

A lo que se puede responder que tampoco tienen los conocimientos para arreglar un coche pero sí que tienen la libertad de llevarlo al mecánico que mejor les parezca (o a tunearlo como les apetezca sin que el fabricante se lo impida). Es decir, el usuario podría recurrir a un programador para que le adaptase el programa a sus necesidades específicas (por ejemplo, de una pequeña empresa) aunque él personalmente no sepa como hacerlo. Hablamos de la existencia de libertad, no de que haya que ejercerla siempre en primera persona.

La industria del software privativo ve al software libre como una amenaza muy seria para su negocio y por tanto se emplea a fondo para desprestigiarlo por todos los medios a su alcance. Por ejemplo, dicen que es inseguro porque todo el mundo puede ver cómo están hechos los mecanismos de seguridad, pero la verdad es que los hechos demuestran que el software más inseguro no es aquel que está más a la vista sino el más usado (el caso de Windows e Internet Explorer ilustra lo que pasa cuando todos los hackers y productores de virus del mundo se empeñan en atacar al mismo objetivo).

En este enfrentamiento no existen buenos ni malos, sino dos formas de entender el negocio. No se trata de promover la desaparición del software privativo, sino de hacer entender a la gente que no es necesario prescindir de las cuatro libertades de la FSF para disponer de buen software. Lo cual no quita que haya casos en los que es necesario recurrir al software privativo aun a pesar de sus inconvenientes.

Un ejemplo

Los no expertos, cuando compran un ordenador no saben cómo escapar a al llamado (irónicamente) Impuesto Microsoft, que consiste en la obligatoriedad que tiene el vendedor de ordenadores de incluir en el precio una licencia de uso de Windows. Es decir, en el precio que usted ha pagado por su ordenador ya le han cobrado el Windows, y les aseguro que es muy difícil (pero no imposible) comprar en España un ordenador sin Windows. Yo mismo estoy escribiendo esto en un portátil que venía con una licencia de Windows Vista (y que me cobraron) pero yo uso Linux. No suele haber escapatoria, así que no queda más remedio que aceptarlo y pagar, y luego ya con el ordenador en nuestro poder instalar lo que uno quiera.

Pero no quiero hablar de Linux (aunque recomiendo vivamente que lo prueben. Yo uso Ubuntu por si alguien se anima) sino de otro producto de Microsoft: Office. Esta suite ofimática se ha convertido en el estándar de facto en las empresas, fundamentalmente por el hecho de que Microsoft se ha ido ocupando de arruinar a todos sus competidores (¿alquien se acuerda de WordPerfect, Lotus 1,2,3, etc. ?). Es lo que tiene contar con unos bolsillos muy profundos.

En las empresas se usa Microsoft Office normalmente de forma legal, lo que significa que se está pagando por cada puesto en el que está instalado un montón de dinero, que además hay que volverse a gastar cada dos años más o menos que es cuando se publica una nueva versión. En los hogares, sin embargo, debido a su precio es habitual se usarlo de forma irregular (es decir, instalado sin licencia).

En ambos casos las quejas son las mismas: que Microsoft Office tiene demasiadas características muy sofisticadas que el usuario medio nunca va a utilizar. Es como si Microsoft se dedicase a engordar su producto para justificar que se adquiera la nueva versión.

Pues bien, existen varias alternativas libres y también gratuitas que funcionan en Windows y en otros sistemas operativos. Una de ellas es OpenOffice (o más correctamente OpenOffice.org). Se trata de una suite ofimática equiparable en calidad y características a la de Microsoft (aunque sí que es cierto que Microsoft Office es más avanzado en algunos aspectos) que tiene todas las funciones necesarias para el usuario medio-avanzado. Les animo a probarla y ya me dirán si no es cierto.
Como conclusión y dado que lo mejor es predicar con el ejemplo, diré que yo personalmente utilizo únicamente software libre en mi ordenador. Se trata de un portátil HP que adquirí nuevo con una licencia de Windows Vista que nunca he usado, porque inmediatament instalé Linux (Ubuntu) que ya trae incorporado el OpenOffice. Y para mis trabajos de desarrollo utilizo también herramientas libres (Eclipse, GIMP, etc.).

La ventaja (aparte de la inmejorable relación calidad/precio, ya que el precio es cero) es que puedo disponer de las últimas versiones de software en cuanto se publican. Pero lo mejor de usar Linux es que en Linux no hay virus. Increíble, ¿verdad? Pues es cierto. Lo repito: en Linux no hay virus.

Mi ordenador es libre ¿y el tuyo?