Software privativo, libre y de código abierto

Tabla de contenido


El software libre y el de código abierto son dos formas de entender el software que tratan de garantizar la libertad de las personas para la creación, utilización, entendimiento y mejora y distribución de software, aunque cada cual a su manera. Por ello, tanto para código abierto como para software libre, existen distintas licencias, redactadas por algún tipo de comunidad, y disponibles para todo el mundo, que consiguen sus propósitos en mayor o menor medida. Entre las más conocidas podemos citar GPL, Apache, Creative Common, etc.

En este artículo vamos a tratar de establecer las diferencias y similitudes entre el software libre y el de código abierto.

Stallman
Richard Stallman en 2002
(Fuente: Wikipedia – Licencia: CC-BY-SA 3.0)

 

Software libre (free software)

Es el conjunto de software que puede ser estudiado, modificado y utilizado libremente para cualquier fin, y que garantiza esta posibilidad ahora y en el futuro a cualquier persona. La expresión free software —«software libre», no confundir con software gratuito, freeware— está asociada a Richard Stallman, que en Harvard había destacado entre los genios de las matemáticas de esta universidad no solo por sus dotes intelectuales, sino también por su afición a colarse en las oficinas informáticas para acceder a los terminales prohibidos. En 1971, Stallman entró a formar parte del Laboratorio de Inteligencia Artificial del Instituto Tecnológico de Massachusetts (MIT) y desde allí lideró un movimiento aún sin nombre que pretendía compartir el software cuando Bill Gates, en 1976, publicó su famosa carta a los miembros del Homebrew Club de Palo Alto (ver artículo El innovador concepto de software comercial). Sin duda, Stallman se sintió aludido por las acusaciones vertidas en ese texto, y desde entonces se convertiría en el más firme opositor del software privativo, hasta el punto de que en 1983 forjó un nuevo sistema operativo totalmente libre, GNU —del que sería heredero el famoso Linux, que en realidad es el núcleo (kernel) de GNU— y en 1985 creó la Fundación del Software Libre (FSF), con la cual enunciaría las cuatro libertades que el software debe garantizar:

 

LIBERTAD DE DESCRIPCIÓN
Uso Usar el programa con cualquier propósito
Estudio Estudiar cómo funciona el programa y modificarlo, adaptándolo a las propias necesidades
Distribución Distribuir copias del programa, con lo cual se puede ayudar a otros usuarios
Mejora Mejorar el programa y hacer públicas esas mejoras a los demás, de modo que toda la comunidad se beneficie

 

Por descontado, el estudio y la mejora del software requieren el acceso al código fuente, porque no se puede aprender ni mejorar nada mirando solo un ejecutable, a menos que seas un genio del lenguaje binario. Así que Stallman definió un sistema de licencias conocido como GNU General Public License (GNU-GPL). Al colocar nuestro software bajo una de estas licencias, estamos obligados a distribuir el código fuente, o a facilitar al público el acceso al mismo, pero también obliga a aquellas personas que modifiquen o mejoren nuestro código a distribuir el suyo, lo cual crea una cadena de obligaciones. Independientemente de esta condición, el  software libre puede ser gratuito (freeware), o comercial (commercialware), pues su característica más importante es que pueda ser usado para cualquier tarea, estudiado, distribuido libremente, y que se garantice que cualquier usuario presente o futuro tendrá la misma libertad de uso, estudio, modificación y distribución.

Podríamos resumir diciendo que el software libre me permite tomar una aplicación hecha por otra persona, mejorarla, y venderla por un precio que yo estipule, o por el contrario regalarla, pero que siempre tendré la obligación de ofrecer a quienes la obtengan la posibilidad de hacer lo mismo, incluyendo la parte correspondiente a mi contribución. En otras palabras: si he añadido una nueva funcionalidad al software original, el código fuente de dicha funcionalidad, escrito por mí, debe estar disponible para todo el mundo ahora y siempre, igual que lo están las partes de software escritas por otras personas. Esto trata de lograr que puedan disfrutarse las cuatro libertades definidas por Stallman.

Actualmente, la GNU-GPL cuenta con al menos tres versiones, y algunas variaciones de las mismas,  y es la más usada en todo el mundo. Quizá porque, como suele decirse, «con el software libre todos ganamos». Pero para muchos desarrolladores presenta una desventaja, sobre todo desde el punto de vista empresarial: que obliga a compartir cualquier modificación. Si Microsoft decidiera utilizar software libre en su sistema operativo Windows, esto obligaría a poner este sistema bajo una licencia GNU-GPL, con lo cual Microsoft estaría compartiendo con el mundo entero el código fuente que durante años ha estado protegiendo. Por tal razón, esta y otras compañías no utilizan software libre, pues no quieren hacer públicos sus avances, y prefieren otra modalidad, la de código abierto, que vamos a describir a continuación.

 

Código abierto (open source)

El movimiento de código abierto nació del movimiento de software libre precisamente para evitar la ambigüedad que su nombre produce. Y es que en inglés la palabra free puede traducirse tanto por «libre» como por «gratis», lo cual llevó a extender la idea errónea de que el software libre (free software) tenía que ser forzosamente gratuito. Nada más lejos de la realidad, y muchos programadores se unieron a este movimiento solo con la pretensión de eliminar tal confusión, por lo  menos al principio. Sin embargo, los seguidores del código abierto han ido evolucionando hacia nuevas maneras de entender la distribución del software, y hoy presenta alguna características todavía compartidas con el software libre, pero también otras que lo distinguen claramente de este. Son, en resumen, las siguientes:

 

  • Libre distribución: el software puede ser regalado o vendido libremente. En esto no se diferencia del software libre
  • Código fuente: debe estar incluido en la distribución u obtenerse libremente. Esta característica también la comparte con el software libre, incluyendo la posibilidad de distribuir trabajo derivados del software principal
  • No discriminación: el software puede distribuirse a personas o grupos, sin exclusión de usuarios empresariales, lo cual posibilita el que pueda usarse con fines comerciales, pero también que una compañía, como Microsoft o Apple, por ejemplo, puedan utilizar software de código abierto en el desarrollo de su software privativo. Esto es importante sobre todo si se tiene en cuenta la siguiente característica
  • La licencia no debe restringir otro software: no se puede obligar a que el software enlazado deba ser también de código abierto.  Cualquiera puede tomar software de código abierto y añadirlo al suyo sin que afecte a las condiciones de su licencia, aunque sí que, según el punto anterior, tendría que informar de que existen partes de código abierto
  • La licencia debe ser neutra: no puede obligarse a un medio determinado de distribución, como discos ópticos, Internet, etc.

 

De lo dicho se desprende que, si bien el código abierto también ofrece acceso al código fuente del software, como su nombre pretende indicar, no garantiza que esto tenga que seguir siendo así siempre. Es decir: puedo tomar una aplicación ajena que sea código abierto, mejorarla y venderla, y puedo poner a disposición del público solamente el código abierto, pero no el de las partes que yo haya mejorado o añadido. Es lo que hacen algunos fabricantes de teléfonos móviles como SamsungSony Ericson, entre otros: partiendo del sistema operativo Android desarrollado por Google, que es código abierto, pero añaden sus propias aplicaciones, como un navegador de Internet, por ejemplo, que es o puede ser software privativo —software propiedad de sus respectivos desarrolladores, del que ya hemos hablado en un artículo anterior— y cuyo código fuente tal vez siempre permanecerá en secreto.

 

Conclusión

Mientras el software libre pretende garantizar las cuatro libertades enunciadas por Stallman compartiendo código, derechos y obligaciones, el código abierto persigue el perfeccionamiento del software, ofreciendo a muchos desarrolladores la oportunidad de aprovechar el trabajo de otras personas sin obligarlos a compartir el propio. Son dos visiones distintas de un mismo problema, basadas en dos respuestas diferentes a una misma pregunta: ¿qué es importante en el mundo del software?

Quienes defienden el movimiento de código abierto aducen que lo importante es que el software sea cada vez mejor, que evolucione, y que la posibilidad de añadir funcionalidades sin tener que hacerlas públicas anima a empresas con grandes recursos a utilizar y mejorar software ajeno que, de otro modo, quizá no usarían. Con ello, afirman, el código abierto hace que dichas empresas ganan dinero, pero en definitiva que también ganemos todos, porque cada vez disfrutamos de un software más evolucionado.

Por su parte, Stallman y sus seguidores priman la libertad individual de las personas sobre el desarrollo tecnológico, y consideran que el movimiento de código abierto no garantiza esa libertad, por lo cual acabará siendo tan poco útil para la gente como el software privativo. También niegan que la participación de grandes empresas en el desarrollo de software se traduzca forzosamente en una mejor calidad del software ni signifique que este evolucione en la dirección adecuada, sino en la marcada por otros intereses.

¿Código abierto o software libre? Tú decides.

 


Tabla de contenido


Escribe una respuesta o un comentario

Tu dirección de correo no será publicada.