imitando
En 1985 Richard Stallman publicó su propósito de crear una versión libre de Unix, que eliminara las restricciones que se iban imponiendo al software por la progresiva comercialización. Su objetivo era clonar un sistema operativo, y Unix era la opción lógica dado su uso cada vez más extendido.
Mientras tanto, la universidad de Berkeley en California creaba su versión de Unix sobre la base proporcionada por AT&T; la atmósfera de "buen rollo mutuo" reinante en el momento llevaba a compartir código con bastante liberalidad. En 1991 un grupo de programadores de la universidad consiguió reemplazar todo el código propietario, y lo licenciaron a todo el que quisiera libre de restricciones comerciales. Ahí empezaron los problemas: al año siguiente una demanda bastante complicada a través de USL y BSDi hizo peligrar los derechos de la universidad. Tras un acuerdo fuera de los tribunales, el resultado fue que la Berkeley Software Distribution quedó fuera de sospecha de una vez por todas, y ha sido la base de muchísimos proyectos de software libre.
A principios de los '90 mucha gente estaba en una situación parecida: no les convencían las restricciones cada vez más severas que se imponía a los usuarios. Cuando en 1991 Linus Torvalds anunció las primeras versiones de un kernel de Unix, publicado bajo licencia GPL, empezaron a lloverle las contribuciones.
Los primeros usos para Linux (y el software libre en general) fueron en la sala de servidores. En 1995 un grupo de webmasters vio cómo su servidor web favorito, NCSA httpd
, quedaba huérfano; a la empresa no le interesaba invertir en software de dominio público. Entonces se juntaron para mantenerlo (y en su momento reescribirlo). Dice la leyenda que el nombre viene de "un servidor con parches" (a "patchy" server).
Pero faltaba darle un aspecto bonito. En 1996 se anunció Kool Desktop Environment, para crear un entorno gráfico libre sin los problemas de CDE o Motif. Y en 1997 arrancó el proyecto GNOME, para a su vez evitar las restricciones de la licencia de Qt, en la que se basaba KDE.
rompiendo barreras
En ese tiempo la situación era bastante curiosa. Había un gran número de aficionados y profesionales que usaban software libre, y sólo en casos de extrema necesidad recurrían al software propietario. Al mismo tiempo, la grandísima mayoría de usuarios de ordenadores no sabíamos lo que era aquéllo. Eran los días gloriosos del shareware, software que funcionaba bien durante un mesecillo pero perdía funcionalidad (o ganaba en mensajes molestos) si no pagabas. También era el esplendor del software pirata, CDs con recopilaciones de dudosa procedencia, cracks, serial numbers... Una abundancia completamente artificial de software gratuito.
Hacia finales de los '90 varias grandes empresas se acercaron al software libre. En 1997 Apple compró NeXT con el objetivo de usar OpenStep como base de su nuevo sistema operativo Rhapsody. (Poco tiempo después parecería que NeXT había comprado Apple, con los ejecutivos de la pequeña dominando a la grande.) Como OpenStep estaba hecho sobre FreeBSD, Apple anunciaría en breve el sistema Darwin como una extensión libre del mismo.
En 1998 Netscape, tras haber perdido miserablemente la batalla de los navegadores, liberó el código de su producto como Mozilla. Ambos esfuerzos tardarían en culminar; no fue hasta 2001 que Apple sacó Mac OS X 10.0, y hasta 2002 no salió Mozilla 1.0.
Entre tanto, Sun había comprado una pequeña empresa alemana, StarDivision, y su producto estrella StarOffice; en 2000 liberó el código como OpenOffice. Ese mismo año IBM hizo su famoso anuncio: la inversión de mil millones de dólares en Linux. Había que estar debajo de una piedra (o en un despacho de dirección) para no enterarse de lo que era el software libre.
Curiosamente, las empresas mencionadas han sido todas, en un momento u otro, archi-enemigos de Microsoft; y se podría argumentar que todas fueron empujadas hacia el software libre por ellos. No deja de ser curioso pensar que la mayor preocupación que tienen hoy día en Microsoft sea una venganza kármica.
el límite de la imitación
Ya desde el principio ciertos programas libres superaron a los programas propietarios que pretendían reemplazar. El editor emacs
creado por Stallman está a años luz de lo que permitían los programas de la época; la consola bash
es netamente superior al sh
tradicional de Unix. Las herramientas gcc
son el estándar de facto en muchas compañías.
Sin embargo, esto hace que aumente el número de usuarios de software libre, pero no su preponderancia. Me explico: cuando uno tiene que usar Solaris, lo primero que hace es sustituir sh
por bash
y bajarse un editor de texto decente; pero normalmente no formatea la máquina y le instala GNU/Linux o FreeBSD. Recordemos el objetivo inicial de Stallman: poder usar sólo software libre en su ordenador.
Siguiendo con la historia, los kernels, sistemas operativos, entornos gráficos y programas libres han estado bastante tiempo dedicados a conseguir la misma funcionalidad que los equivalentes propietarios. Y eso se nota: es bastante fácil ver el origen de KDE o el Gimp. Pero en mi opinión ha llegado el momento en que el software libre ofrece cosas que no suelen estar presentes en los propietarios:
- mayor flexibilidad y configurabilidad. En KDE puedo colocar los botones de las ventanas como me apetezca; en Firefox puedo configurar los elementos básicos desde un panel, y el motor mediante
about:config
.
- mayor control. Rara vez te quedas sin saber qué hacer, suele haber recursos para recuperarse de errores catastróficos (sin necesidad de volver a instalar).
- más seguridad. Es probable que alguien haya revisado los agujeros de seguridad si el programa forma parte de una distro importante.
- más alternativas. Suele haber varios programas de cada tipo, cada uno con sus puntos fuertes.
Creo que se debe básicamente a la audiencia, más técnica, de este tipo de programas. ¿Qué hace mientras tanto la competencia?
la imitación es el cumplido más sincero
Dentro de poco saldrá al mercado Solaris 10. Como puede verse en esta página tan ridícula donde un tipo mira algo con unas gafas de cartón, viene anunciado como Linux enabled. ¿De qué va? En esta otra página, ya más seria, nos cuenta que se pueden correr directamente aplicaciones de Linux.
Algunos recordarán que SCO añadió a UnixWare su Linux Kernel Personality: un modo de emulación de Linux con el mismo propósito. La malvada empresa que quiere cobrar un impuesto revolucionario sobre el sistema operativo libre también quiere poder correr las aplicaciones.
Este enfoque es bastante cutre; ¿para qué usar una versión propietaria para hacer lo que Linux ya hace por sí solo? Un programa codificado correctamente puede usarse en cualquier plataforma que siga el estándar POSIX. Pero es interesante ver que el interés por Linux crea imitadores a bajo nivel.
imitaciones baratas
Hace ya tiempo que Microsoft anunció su iniciativa shared source o código compartido, por contraposición clónica a la iniciativa open source. Es un programa bastante limitado: sólo los grandes clientes tienen acceso al código, sólo de una parte (supuestamente por motivos de seguridad), y se sigue una política de "mírame y no me toques" que envidiaría cualquier madre de hija adolescente. No hace falta decir que Microsoft lo vende como si proporcionara todas las ventajas del software libre sin ninguno de los inconvenientes: ¿quién garantiza que los temibles hackers rusos no han añadido una puerta trasera en Linux, para uso y disfrute de los gobiernos terroristas?
Se puede afirmar sin miedo que lo contrario es cierto: no tiene ninguna de las ventajas y sí todos los inconvenientes. Es imposible recrear un sistema operativo basándose en el código proporcionado; ninguna de las partes interesadas tiene el dinero o las ganas de mejorarlo; y por supuesto no existe la capacidad de bifurcar el código si no se está contento con el distribuidor. Esta última es una de las propiedades más interesantes del software libre: si mañana yo no estoy contento con las versiones del kernel que publica Torvalds, puedo añadir mis parches y distribuir una nueva versión yo mismo. Otra cosa es que el resto de la gente lo acepte; pero, como se vio recientemente con el paso de xfree86.org a x.org, es esencial tener esta posibilidad.
Y ¿qué pasa con los hackers rusos? En realidad, nadie me garantiza que no inserten su código en los programas propietarios. Además, como el código fuente se mantiene en secreto, es difícil que nadie se dé cuenta. Pero en un programa libre, cualquiera puede ver el código. El usuario medio no va a ponerse a bucear en sus entresijos, pero es casi seguro que hay gente que lo hará; y cuanto más popular el programa, más ojos lo revisarán. Además, normalmente la historia completa del desarrollo está disponible en forma de repositorio de código, y se puede revisar en qué momento se introdujo cada cambio.
Hay otros programas similares mediante los cuales las empresas publican su código para revisión pública, por ejemplo el de Sun para Java. Hay un pequeño problema. Los desarrolladores de software libre suelen tener un fino olfato para detectar que alguien se está intentando aprovechar de su esfuerzo. En estos casos, uno puede ver el código e incluso modificarlo, y comunicar los cambios a Sun; pero no puede distribuir el resultado sin permiso. Es en resumen una tomadura de pelo, y poca gente está dispuesta a contribuir bajo la base de "lo mío es mío y lo tuyo es negociable".
lo que no se puede imitar
Hay aspectos del software libre que son casi imposibles de imitar por el software propietario. El más vistoso es la gran cantidad de distribuidores; como ya hemos señalado arriba, cualquiera puede coger una base de código y convertirse en el distribuidor de facto. En la práctica vemos que hay muchísimas distribuciones de GNU/Linux, y varias versiones alternativas del kernel (son famosas las ramas -mm de Andrew Morton y -aa de Andrea Arcangeli). También hay múltiples repositorios públicos de software.
Pero probablemente el más interesante sea la existencia de alternativas en software -- y su prima hermana, la modularización. En un sistema propietario tienes suerte si hay dos entornos gráficos disponibles. En GNU/Linux el entorno gráfico tiene múltiples capas: sistema de ventanas, gestor de ventanas, gestor de fuentes, librerías gráficas, escritorio... y para cada una hay multitud de alternativas. ¿Cómo se consigue que se entiendan entre sí? Pues porque cada capa es modular y tiene unas responsabilidades bien definidas -- si hubiera muchas interacciones, sería casi imposible reemplazar cualquiera de las partes.
Ninguna empresa puede permitirse el lujo de mantener siete versiones de "la misma cosa"; pero los usuarios agradecemos este lujo, porque sabemos que rara vez son "la misma cosa". Cada alternativa tiene su enfoque, sus puntos fuertes y débiles, y en definitiva su utilidad. Cada vez que se pierde una alternativa, perdemos la utilidad peculiar que proporciona.
Lo que nos lleva a otro de los puntos inimitables del software libre: es difícil que un programa se pierda del todo. Mientras un solo usuario siga teniendo el código, puede modificarlo y redistribuirlo a otros usuarios. Por contra, en el software propietario la distinción entre "usuarios" y "distribuidor" es esencial para mantener la idea de propiedad, y la ausencia de código fuente hace que ni siquiera los distribuidores ilegales modifiquen el original. Se depende totalmente del desarrollador original; si la empresa se hunde, se acabó el programa.
conclusión
Espero que esta introducción os resulte interesante. Queda mucho por hacer en el software libre; el hardware avanza y no siempre el soporte es bueno; y el campo propietario se inventa nuevas aplicaciones que a veces se echan de menos. Por ejemplo, ¿por qué esa ausencia de virus? ¿Es que no tenemos derecho a salir en las noticias como ILOVEYOU, Melissa o CodeRed? (Chiste, chiste.) Pero es alentador ver que ya hay aspectos en los que llevamos la delantera.
Ya sólo falta que os animéis a enviar comentarios para empezar la discusión.