Evolución, darwinismo y software libre
El programa más apto
Por Guillermo Movia y Esteban Magnani
Los bits se multiplican, se reproducen a través de la red, se cruzan entre sí y producen nuevos bits. Los más aptos para responder a las necesidades de la naturaleza humana serán los que sobrevivan en la jungla de Internet. Los que no, quedarán en una especie de hibernación hasta que alguien, a modo de Jurassic Park, los resucite para algún fin nuevo. Los programas han ido cambiando a lo largo del tiempo, y aquellos que mejor respondieron a las necesidades del público o que eliminaron a las especies competidoras por medio de la fuerza bruta y monopólica fueron los sobrevivientes.
Justamente estas dos técnicas de supervivencia y reproducción son las que se pueden aplicar también a los programas de computación. En lugar de genes habría que hablar de bits. En lugar de ADN, de "códigos fuentes". En vez de naturaleza, de usuarios. En lugar de medio ambiente, de la red. Es allí donde dos tipos de caminos diferentes (¿dos ramas evolutivas?) se enfrentan y tienen planteada una lucha encarnizada. Por un lado están los programas más conocidos, desarrollados por empresas que mantienen en secreto el código genético de los mismos. Por el otro está el software libre.
¿Qué es el "software libre"?
Lo que hace que un programa de computadora sea libre es su licencia. Todos vienen con un documento que nos indica en qué forma podemos usarlo, si podemos copiarlo o modificarlo, etc. Los softwares más conocidos, como por ejemplo el sistema operativo Windows, permiten la instalación en una sola máquina y no ofrecen la posibilidad de modificarlos o ver cómo están hechos; ni siquiera se pueden prestar, al menos en teoría. Por el contrario, el "software libre" habilita al usuario a que vea cómo está hecho, lo modifique y después pueda dárselo a quien quiera.
En los albores de la historia de la computación, cuando los monitores eran verdes y negros y las computadoras apenas si se veían en algún laboratorio muy especializado, todos los programas eran libres. Pocas personas se dedicaban a desarrollarlos y en general trabajaban en una gran comunidad donde el intercambio de los programas, todavía en disquetes, facilitaba que pudieran ayudarse a mejorarlos.
Pero cuando las computadoras personales empezaron a ser masivas, algunas empresas consideraron que no era bueno que cualquiera pudiera ver cómo estaba hecho el programa: ellas habían invertido dinero en su desarrollo y cualquier otra empresa podría utilizar sus avances para su propio beneficio. Entonces comenzaron a esconder el código fuente de los programas –las instrucciones que los programadores le dan a la computadora– para que sólo puedan verlo quienes trabajaban allí.
Para su desgracia, en 1984 Richard Stallman, un investigador del Massachusetts Institute of Technology, inició un movimiento para mantener el software y su código libre de las trabas de las empresas. Compartiendo los conocimientos, pensaba, la sociedad se beneficiaría con mejores programas.
La evolucion del software
Los programas de software libre son respuestas no sistemáticas a la necesidad de realizar algún trabajo. Casi se podría decir que aparecen por azar en distintos lugares cuando un programador se enfrenta a la difícil tarea de armar una serie de instrucciones para que su computadora haga lo que él necesita. Luego, los programadores lo dejan en algún sitio de Internet donde otros pueden enterarse de la existencia del proyecto y bajar lo que está hecho para verlo, probarlo y modificarlo. Es decir que arrojan su descendencia al mundo para ver si se adapta o muere. Tal vez algunos de sus bits sobrevivan en otro programa futuro. La evolución dependerá de que una comunidad se forme en torno de él para mejorarlo, escribir la documentación necesaria, probarlo nuevamente. Al tener todos los usuarios acceso al código, ellos mismos pueden trabajar hasta encontrar la solución y después publicarla para todos los demás; de esta forma el programa se prueba en diferentes configuraciones de computadoras lo que facilita encontrar la mayor cantidad de errores posible.
Así como la adaptación va favoreciendo ciertas ramas evolutivas, ciertos programas con más posibilidades y atractivos van mejorando y desarrollándose cada vez más resistentes al ambiente. Al igual que en la evolución, ante un problema no hay una sola solución/adaptación: así los proyectos se ramifican con diferentes soluciones aportadas por los programadores. Gracias a la dificultad de controlar Internet –o gracias a la facilidad de intercambio que genera–, los fuertes programas-dinosaurios pueden perder frente a los variados y flexibles mamíferos del software libre como si un meteorito hubiera caído sobre la Tierra.
Alpha y Beta
Los programas de software libre pueden bajarse de la red o conseguirse en tres versiones diferentes: a) alpha, para desarrolladores; b) beta, para usuarios experimentados que quieren probar las nuevas características y se arriesgan a que algunas cosas no funcionen, y c) estable, para los usuarios finales. Las versiones alpha van introduciendo las nuevas características que, a medida que se arreglan, se incorporan a las versiones beta y estable. Como en este tipo de desarrollo no se tiene la presión de la venta, los cambios se van realizando con seguridad, y cuando llegan a la versión estable ya tienen pocos o ningún problema. Este es el camino que recorrieron algunos programas famosos como Linux.
Por el contrario, el software propietario tiene la obligación de sacar un nuevo modelo todos los años, y a cada uno debe agregarle nuevas funciones para que los usuarios deseen adquirirla. Y como un retraso en los tiempos pautados suele espantar a los inversionistas, los programas salen a la venta con problemas que después deben ser resueltos a través de parches (patches). Y éstos sólo pueden ser realizados por los mismos programadores de la empresa, ya que su código genético está oculto para el resto de la humanidad. Por lo tanto, en los recovecos de estos bichos pueden ir quedando deformaciones que eventualmente minan el cuerpo del ser.
Dos evoluciones diferentes
¿Cuál será la fórmula más apta? ¿Grandes programas con muchas características y con problemas diseminados en todo su ser? O ¿seres con menos habilidades pero que cumplen mejor las tareas que realizan? ¿Un dios a cargo de crear las adaptaciones necesarias o una comuna de ángeles que decide en una democracia de hecho el camino a seguir? Es difícil decirlo. En la evolución nunca se sabe qué camino será el que mejor se adapte. Y mucho menos si algún dios travieso está dispuesto a favorecer a una especie en particular creando algún monopolio