Para escribir este curso he usado una de las herramientas de publicación más potentes que hay en la actualidad, TeX. Es un poco más conocida una colección de macros llamada LATEX. No he escrito directamente código LATEX sino que he usado un editor de textos llamado LyX. La calidad del documento final es apreciable; las fuentes son claras y la tipografía es perfecta. Probablemente a alguno le sorprenda saber que estas herramientas son gratuitas. No me refiero a que las haya pirateado ni que me las hayan regalado; podemos descargarnos todos estos programas e instalarlos en nuestro ordenador de forma gratuita (siempre que respetemos la licencia adjunta). Además no solo podemos descargar el programa, sino que el código fuente también está disponible con una licencia que permite su modificación y su redistribución.
TeX es quizás el ejemplo más llamativo por ser el primero. Lo programó Donald E. Knuth porque estaba muy descontento con la calidad de publicación de algunas editoriales con las que tenía tratos. A partir de entonces la cantidad de proyectos cuya máxima es la posibilidad de compartir y redistribuir el código libremente no ha hecho más que aumentar. Otros ejemplos conocidos (algunos más otros menos) son Linux, implementación libre y gratuita de un núcleo de sistema operativo tipo UNIX; Emacs, posiblemente el editor más completo y extensible que existe; Apache, el servidor web más usado; MySQL, una base de datos muy popular; KDE, un entorno de escritorio completo que rivaliza en calidad con WindowsXP y Mac OSX...
El software libre tiene dos grandes ventajas respecto al comercial, el coste cero sin garantía y (ventaja poco valorada) ser proyectos llevados en comunidad. Una vez un programa comercial sale al mercado se independiza completamente de sus desarrolladores; el mantenimiento pasa a ser labor del servicio técnico. Si el programa funciona mal o de un modo distinto al supuesto habrá que llamar por teléfono y solicitar ayuda. Una comunidad es una estructura completamente distinta. Supongamos que encontramos un bug en Octave, uno grave que no nos permita seguir con nuestro trabajo. ¿A quién llamamos? No hay ninguna empresa que ofrezca garantía, además en la licencia pone bien claro que Octave no es un producto mercantil y por tanto no está sujeto a ninguna normativa concreta. La frase usada es use this software at your own risk. Lo que haremos será ir a google e investigar si alguien ha tenido antes el mismo problema; si la respuesta es negativa pasaremos a las listas de correo. Las listas de correo son la base de una comunidad de desarrolladores junto con los canales IRC. Para quien no lo sepa una lista de correo es una dirección de correo electrónico que manda lo que recibe a todos los miembros de la lista. Si vemos que somos los primeros en detectar el fallo debemos suscribirnos a la lista de usuarios de Octave (bastante activa, por cierto), describir el fallo y pedir amablemente que alguien nos ayude. Si tenemos suerte es probable que John W. Eaton, creador de Octave, nos responda. Si además le damos nosotros la solución y esto sucede unas cuantas veces puede ser que nos de permiso de escritura en el repositorio de código y que nos de una cuenta de desarrollador. En Octave todo se hace a pequeña escala; en proyectos grandes como KDE el proceso de desarrollo involucra a unas mil personas y varias empresas.
Este fenómeno ha crecido gracias a dos pequeños detalles, el uso de licencias copyleft y el uso de estándares abiertos. He publicado este texto bajo una licencia Creative Commons, creada por una fundación cuyo fin es la publicación de licencias de distribución copyleft. Lo he hecho por la creencia personal de que el conocimiento debe ser público y gratuito. Este afán altruista puede provocar consecuencias bastante desagradables en el caso que no sea perfectamente planeado. Es aquí donde entran las licencias libres o de copyleft. Una licencia libre asegura la máxima libertad de uso; es un blindaje comercial absoluto que puede ser tan bebeficioso en algunos casos como perjudicial en otros. Luego nos encontramos varias licencias que limitan las libertades de uso, siempre intentando preservar primero los derechos del autor. En este caso he utilizado una licencia no comercial pero sin posibilidad de un trabajo derivado. Esto significa que cedo la libertad de copiar literalmente el texto sin ningún coste económico pero que me reservo el derecho de cobrar por ello cuando quiera. También impide que cualquier otro autor que copie partes del libro pueda hacerlo sin citarme.
Cuando alguien con este afán altruista, normalmente acompañado de un desprecio total por el lucro, pretende programar una aplicación o publicar un libro en comunidad nunca inventará su propio formato de distribución. Lo que hará será buscar el formato más extendido para que su trabajo llegue a la mayor cantidad de gente posible. Esto está asegurado con el uso de estándares abiertos.
Los estándares abiertos son tipos de archivos o protocolos de comunicación cuyas especificaciones técnicas se han publicado enteras. Ejemplos de estándares abiertos son los protocolos TCP/IP, HTTP, FTP, SSH; los lenguajes C, C++, Python; los tipos de documentos HTML, SGML, RTF, PS, PDF, OD*... Permiten que dos programas que no tienen ninguna línea de código en común puedan entenderse a la perfección. El software libre o de código abierto (hay una diferencia muy sutil entre los dos) utiliza casi siempre estándares abiertos porque es absurdo no hacerlo. Cuando alguien publica un programa con su propio estándar debe hacerlo desde una posición de fuerza para conseguir imponerlo.
He aquí el gran enemigo del software libre, los estándares cerrados. Los ejemplos de estándares cerrados más manifiestos son los impuestos por Microsoft. Cada producto que sacan al mercado tiene su propio formato de archivo incompatible con los ya existentes. Es una práctica monopolística muy habitual y las consecuencias han sido nefastas para el mundo de la informática. Sólo hace poco han decidido publicar parte de las especificaciones porque así lo han requerido varios gobiernos por motivos de seguridad nacional.
Todos los formatos cerrados son nocivos; cuanto más extendidos más perjudiciales. El archivo .doc ha hecho un daño irreparable. Microsoft Word es el único procesador de textos existente que no exporta a PDF. ¿Por qué? Porque Microsoft intenta imponer el archivo DOC para distribución de archivos de texto. Si uno usa Windows en su ordenador es su problema, si usa Explorer allá él pero si usa Microsoft Office el problema es de todos. Utilizar un programa de software libre es una garantía de uso de estándares abiertos. Si uno prefiere seguir utilizando productos de Microsoft que consiga un plugin de salida a PDF o que use el formato RTF (Rich Text Format). Todos los que no seamos esclavos de Microsoft se lo vamos a agradecer eternamente.
No estoy sugiriendo que todo el mundo instale Linux en su ordenador (aunque así viviríamos en un mundo mejor). Lo que sí recomiendo encarecidamente es que se usen formatos abiertos para compartir documentos. Hace muy poco se publicaron las espeficicaciones técnicas de la alternativa a los formatos de Microsoft Office llamados Open Document. Los programas que lo soportan son, de momento, OpenOffice y Koffice. OpenOffice es una suite de ofimática muy completa de un invel equivalente a Microsoft Office. Tiene versiones nativas para Linux, Windows, Solaris y Mac OSX. Koffice es la suite particular de KDE y es un proyecto a una escala menor.
Otro ejemplo flagrante es el del estándar html. Es el lenguaje de marcas en el que están escritas las páginas web. Todos los navegadores están diseñados para soportar todas las especificaciones del estándar excepto uno. Esta oveja negra es el Microsoft Internet Explorer. Además los desarrolladores de este navegador han asegurado que no pretenden soportar enteramente el formato html más actual en un futuro cercano. Esto obliga a los desarrolladores de páginas web a utilizar las especificaciones del html soportado para el Internet Explorer y no las que marca el estándar de la w3c, organización sin ánimo de lucro que vela por los estándares de publicación en Internet. Esta situación vergonzosa es provocada por la manifiesta falta de calidad del navegador de Microsoft y por la aplicación de técnicas monopolísticas en el mercado de el diseño de páginas web. ¿Cuántas páginas en el mundo están optimizadas para el Internet Explorer? ¿Cuántas llevan el sello de w3c?
Espero que este apéndice ayude a concienciar a alguien de lo importante que es no ceder al chantaje de ciertas empresas cuyo único objetivo es enriquecerse a costa manipular al consumidor.