GNU/Linux, ese pequeño gigante

 

La verdad os hará libres.

Introducción

Tenemos ante nosotros uno de los grandes paradigmas de nuestros tiempos: El sistema operativo GNU/Linux.

El mismo plantea una contradicción a lo que es el modelo tradicional de negocios en la industria del software. Antes de la aparición de GNU/Linux se pensaba que la única forma viable de hacer software de calidad -y que el mismo sea económicamente viable- era licenciando el uso del programa y manteniendo el código fuente del mismo en estricto secreto. Era impensable el hecho de publicar dicho código fuente: según el criterio impuesto, si los demás tenían acceso a él, el negocio se arruinaría.

Pues bien, el software libre en general, y GNU/Linux en particular, han demostrado que la forma tradicional de hacer negocios -y, por extensión, de desarrollar software- no es la única posible. Hoy existe un modelo que podríamos llamar colaborativo, según el cual varias personas (pueden ser una, cinco o miles) colaboran en el desarrollo de cierta pieza de software. Dicha colaboración no está limitada a la programación del mismo. También se inscribe dentro de esta idea de desarrollo colectivo el uso de dicho software, informando a los programadores sobre fallas que el mismo pueda tener, ideas y sugerencias sobre posibles mejoras y un sinfín de datos útiles para ir construyendo en torno a dicho programa una comunidad de usuarios, los cuales obtienen mutuo beneficio de esta colaboración activa.

También hay que tener en cuenta un dato adicional a lo expuesto hasta aquí: solamente puede tenerse una comunidad activa en torno a un determinado programa o software si este resuelve las necesidades de sus usuarios. Esto, aunque parezca una verdad de perogrullo, es la verdadera fuerza motriz que impulsa este proceso. Además, es también la fuerza que guiará la evolución del mismo hacia donde la necesidad de la mayoría apunte.

Aunque este modelo, en primera instancia, pueda parecer de rentabilidad escasa o nula a los desarrolladores y profesionales del área informática, veremos que esto es solamente una impresión causada por el contraste con la práctica común de trabajo.

Pongamos un sencillo ejemplo. Supongamos que somos desarrolladores que vivimos de vender sistemas a medida a nuestros clientes. Esta es sin lugar a dudas la situación de la mayoría de los profesionales, ya que solamente un porcentaje muy bajo de ellos serán propietarios de una compañía que factura varios miles de millones al año. Notemos un detalle en cuanto a nuestro modelo de negocios: lo que le vendemos a nuestro cliente no es en realidad el software que hemos desarrollado, sino la solución a un problema determinado. Con esto en mente, podemos optar por dos caminos. Uno es desarrollar nuestro propio conjunto de herramientas, las cuales mantendremos bajo estricto control para que no se hagan copias "ilegales" de ellas. La otra es buscar una herramienta ya desarrollada, la cual, dado que las necesidades de mi cliente son únicas, sin duda tendré que modificar para ajustarla a sus requisitos. Si miramos cuidadosamente a estas opciones, veremos que no solamente la segunda es el camino más directo hacia la implementación de nuestro sistema, sino que además es más flexible. Con la primera opción mi cliente queda atado a mí para futuras mejoras y corecciones, pero yo quedaré atado a mi conjunto de herramientas, las cuales tendré que mantener, extender y corregir a pedido del cliente, haciendo que luego sea muy difícil de readaptar a otras necesidades si consigo un nuevo cliente. Con la segunda opción, un conjunto de personas mantiene un núcleo de funcionalidades, y cada uno hace las extensiones particulares para sus clientes. Dicho núcleo cuenta con la ventaja de estar permanentemente auditado por los ojos de varios profesionales, lo que hace más fácil la detección y corección de errores. También existe una ventaja adicional para el cliente, el cual pocos tienen en cuenta, y es que si yo debo dejar de mantener su sistema, otro profesional podrá hacerse cargo de él. Esto, que parece una desventaja, puede ser un argumento de peso a la hora de vender un sistema informático. Después de todo, estaremos cobrando por nuestro servicio, no por el sistema que hemos implementado.

Con el ejemplo precedente he querido ejemplificar la idea que se esconde detrás del desarrollo del software libre desde un punto de vista técnico-práctico. Pero este no es el único perfil que muestra el software libre. Existe también el lado filosófico, y es éste el que más polariza las opiniones en pro y en contra del software libre. El mismo plantea que los usuarios tienen -o deberían tener- libertades al momento de usar su software, y que nada ni nadie puede ponerle límites a su libertad. Existen varias "corrientes" en cuanto a la filosofía del software libre, unas con tendencias más técnicas, otras más radicales. De todas maneras, todas ellas coinciden en tres puntos fundamentales: