viernes, 22 de mayo de 2015

Comparación con el Software Abierto

Aunque en la práctica el software de código abierto y el software libre comparten muchas de sus licencias, la Free Software Foundation opina que el movimiento del software de código abierto es filosóficamente diferente del movimiento del software libre.12 Apareció en 1998 con un grupo de personas, entre los que cabe destacar a Eric S. Raymond y Bruce Perens, que formaron la Open Source Initiative (OSI). Ellos buscaban darle mayor relevancia a los beneficios prácticos del compartir el código fuente, e interesar a las principales casas de software y otras empresas de la industria de la alta tecnología en el concepto. Por otro lado, la Free Software Foundation y Richard Stallman prefieren plantear el asunto en términos éticos empleando el término "software libre".
Los defensores del término "código abierto" afirman que éste evita la ambigüedad del término en ese idioma que es free en free software. El término "código abierto" fue acuñado por Christine Petersondel instituto de investigación Foresight Institute, y se registró para actuar como marca registrada el término en inglés, para los productos de software libre.
Mucha gente reconoce el beneficio cualitativo del proceso de desarrollo de software cuando los desarrolladores pueden usar, modificar y redistribuir el código fuente de un programa. El movimiento del software libre hace especial énfasis en los aspectos morales o éticos del software, viendo la excelencia técnica como un producto secundario de su estándar ético. El movimiento de código abierto ve la excelencia técnica como el objetivo prioritario, siendo la compartición del código fuente un medio para dicho fin. Por dicho motivo, la Fundación del Software Libre se distancia tanto del movimiento de código abierto como del término "Código Abierto".
Puesto que la OSI sólo aprueba las licencias que se ajustan a la Open Source Definition (definición de código abierto), la mayoría de la gente lo interpreta como un esquema de distribución, e intercambia libremente los términos "código abierto" y "software libre". Aún cuando existen importantes diferencias filosóficas entre ambos términos, especialmente en términos de las motivaciones para el desarrollo y el uso de tal software, raramente suelen tener impacto en el proceso de colaboración.
Aunque el término "código abierto" elimina la ambigüedad de libertad frente a precio (en el caso del inglés), introduce una nueva: entre los programas que se ajustan a la definición de código abierto, que dan a los usuarios la libertad de mejorarlos, y los programas que simplemente tiene el código fuente disponible, posiblemente con fuertes restricciones sobre el uso de dicho código fuente. Mucha gente cree que cualquier software que tenga el código fuente disponible es de código abierto, puesto que lo pueden manipular (un ejemplo de este tipo de software sería el popular paquete de software gratuito Graphviz, inicialmente no libre pero que incluía el código fuente, aunque luego AT&T le cambió la licencia). Sin embargo, mucho de este software no da a sus usuarios la libertad de distribuir sus modificaciones, restringe el uso comercial, o en general restringe los derechos de los usuarios.

Licencias

Una licencia es aquella autorización formal con carácter contractual que un autor de un software da a un interesado para ejercer "actos de explotación legales". Pueden existir tantas licencias como acuerdos concretos se den entre el autor y el licenciatario. Desde el punto de vista del software libre, existen distintas variantes del concepto o grupos de licencias:



Licencias GPL



Una de las más utilizadas es la Licencia Pública General de GNU (GNU GPL). El autor conserva los derechos de autor (copyright), y permite la redistribución y modificación bajo términos diseñados para asegurarse de que todas las versiones modificadas del software permanecen bajo los términos más restrictivos de la propia GNU GPL. Esto hace que sea imposible crear un producto con partes no licenciadas GPL: el conjunto tiene que ser GPL.
Es decir, la licencia GNU GPL posibilita la modificación y redistribución del software, pero únicamente bajo esa misma licencia. Y añade que si se reutiliza en un mismo programa código "A" licenciado bajo licencia GNU GPL y código "B" licenciado bajo otro tipo de licencia libre, el código final "C", independientemente de la cantidad y calidad de cada uno de los códigos "A" y "B", debe estar bajo la licencia GNU GPL.
En la práctica esto hace que las licencias de software libre se dividan en dos grandes grupos, aquellas que pueden ser mezcladas con código licenciado bajo GNU GPL (y que inevitablemente desaparecerán en el proceso, al ser el código resultante licenciado bajo GNU GPL) y las que no lo permiten al incluir mayores u otros requisitos que no contemplan ni admiten la GNU GPL y que por lo tanto no pueden ser enlazadas ni mezcladas con código gobernado por la licencia GNU GPL.
En el sitio web oficial de GNU hay una lista de licencias que cumplen las condiciones impuestas por la GNU GPL y otras que no.

Aproximadamente el 60% del software licenciado como software libre emplea una licencia GPL o de manejo.

Licencias AGPL



La Licencia Pública General de Affero (en inglés Affero General Public License, también Affero GPL o AGPL) es una licencia copyleft derivada de la Licencia Pública General de GNU diseñada específicamente para asegurar la cooperación con la comunidad en el caso de software que corra en servidores de red.
La Affero GPL es íntegramente una GNU GPL con una cláusula nueva que añade la obligación de distribuir el software si éste se ejecuta para ofrecer servicios a través de una red de ordenadores.

La Free Software Foundation recomienda que el uso de la GNU AGPLv3 sea considerado para cualquier software que usualmente corra sobre una red.

Licencias estilo BSD


Llamadas así porque se utilizan en gran cantidad de software distribuido junto a los sistemas operativos BSD. El autor, bajo tales licencias, mantiene la protección de copyright únicamente para la renuncia de garantía y para requerir la adecuada atribución de la autoría en trabajos derivados, pero permite la libre redistribución y modificación, incluso si dichos trabajos tienen propietario. Son muy permisivas, tanto que son fácilmente absorbidas al ser mezcladas con la licencia GNU GPL con quienes son compatibles. Puede argumentarse que esta licencia asegura “verdadero” software libre, en el sentido que el usuario tiene libertad ilimitada con respecto al software, y que puede decidir incluso redistribuirlo como no libre. Otras opiniones están orientadas a destacar que este tipo de licencia no contribuye al desarrollo de más software libre (normalmente utilizando la siguiente analogía: "una licencia BSD es más libre que una GPL si y sólo si se opina también que un país que permita la esclavitud es más libre que otro que no la permite").


Licencias estilo MPL y derivadas


Esta licencia es de Software Libre y tiene un gran valor porque fue el instrumento que empleó Netscape Communications Corp. para liberar su Netscape Communicator 4.0 y empezar ese proyecto tan importante para el mundo del Software Libre: Mozilla. Se utilizan en gran cantidad de productos de software libre de uso cotidiano en todo tipo de sistemas operativos. La MPL es Software Libre y promueve eficazmente la colaboración evitando el efecto "viral" de la GPL (si usas código licenciado GPL, tu desarrollo final tiene que estar licenciado GPL). Desde un punto de vista del desarrollador la GPL presenta un inconveniente en este punto, y lamentablemente mucha gente se cierra en banda ante el uso de dicho código. No obstante la MPL no es tan excesivamente permisiva como las licencias tipo BSD. Estas licencias son denominadas de copyleft débil. La NPL (luego la MPL) fue la primera licencia nueva después de muchos años, que se encargaba de algunos puntos que no fueron tomados en cuenta por las licencias BSD y GNU. En el espectro de las licencias de software libre se la puede considerar adyacente a la licencia estilo BSD, pero perfeccionada.


Copyleft



Hay que hacer constar que el titular de los derechos de autor (copyright) de un software bajo licencia copyleft puede también realizar una versión modificada bajo su copyright original, y venderla bajo cualquier licencia que desee, además de distribuir la versión original como software libre. Esta técnica ha sido usada como un modelo de negocio por una serie de empresas que realizan software libre (por ejemplo MySQL); esta práctica norestringe ninguno de los derechos otorgados a los usuarios de la versión copyleft.

En España, toda obra derivada está tan protegida como una original, siempre que la obra derivada parta de una autorización contractual con el autor. En el caso genérico de que el autor retire las licencias "copyleft", no afectaría de ningún modo a los productos derivados anteriores a esa retirada, ya que no tiene efecto retroactivo. En términos legales, el autor no tiene derecho a retirar el permiso de una licencia en vigencia. Si así sucediera, el conflicto entre las partes se resolvería en un pleito convencional.

La libertad de mejorar el programa y poner las mejoras a disposición del público, para que toda la comunidad se beneficie

No todos los programadores son igual de buenos en todos los campos. Y algunas personas no saben programar. Esta libertad permite a aquellos que no tienen el tiempo o las habilidades para resolver un problema, puedan acceder indirectamente a la libertad de modificación. Esto puede hacerse por un coste.

La libertad de redistribuir copias, para que pueda ayudar al prójimo

El software puede ser copiado y distribuido virtualmente sin coste. Si a no se le permite dar un programa a quien lo necesite, entonces ese programa no es libre. Eso puede hacerse por un precio, si así lo desea.




La libertad de estudiar cómo funciona el programa y de adaptarlo a sus necesidades

Fijar restricciones legales o prácticas sobre la comprensión o modificación de un programa, como la obligación de comprar licencias especiales, la firma acuerdos de no divulgación o para lenguajes de programación que tienen múltiples formas o representaciones añadir dificultades a la comprensión y edición de un programa (del código fuente) con el objetivo de que sea inaccesible, también hace que el software sea privativo (que no sea libre). Sin la libertad de modificar un programa, los usuarios continuarán a merced de un único proveedor.

La libertad de ejecutar el programa para cualquier propósito

Fijar restricciones al uso del Software Libre, tales como restricciones de tiempo («30 días de período de prueba», «la licencia expira el 1º de enero de 2004»), de propósito («se otorga permiso para investigación y uso no comercial» o «no se puede usar para compararlo con otros productos») o de áreas geográficas («No debe ser usado en el país X») hace que un programa no sea libre.

Richard Stallman y el proyecto GNU/Linux


"Necesitamos reforzar el espíritu de colaboración de la gente, respetando su libertad para cooperar y evitando imponer esquemas para dividirlos y dominarlos." Richard Stallman.

Si sé está hablando de software libre es prácticamente imposible no mencionar a Richard Stallman, un personaje genial y controvertido, imprescindible para comprender la verdadera esencia del software libre. Físico de carrera, graduado en la Universidad de Harvard. Trabajó en el laboratorio de inteligencia artificial del Instituto Tecnológico de Massachussetts (MIT) desde 1971.
.
Una de las anécdotas que se cuentan entorno a Richard Stallman, narra que en cierto lugar donde él trabajaba, tenían una impresora que atoraba continuamente el papel. La única manera de verificar que se atoraba el papel, era trasladarse físicamente hasta el lugar donde estaba dicho dispositivo. Stallman tuvo la idea de modificar el código que controlaba la impresora, para que ésta mandara un aviso cuando se atascara el papel y evitarse estar revisándola a cada rato. Para ello se comunicó con las personas que distribuían el software de la impresora y les planteó lo que quería hacer. Lo único que obtuvo como respuesta, fue que era imposible que le dieran acceso al código fuente del programa que controlaba la impresora, y por lo tanto no podía modificarlo. Stallman se hizo la siguiente pregunta. ¿Cómo es posible que no pueda hacer una mejora a un software por el que pagué?

En 1984 movido por el deseo de lograr que el código fuente del software esté disponible para cualquiera, abandonó el MIT para iniciar el proyecto conocido como GNU. El proyecto GNU tenia la finalidad de crear un sistema operativo completamente libre. En 1985 publicó su manifiesto GNU, en el cual expone sus intenciones y motivaciones para crear una alternativa libre al Unix a la cual llamó GNU (GNU No es UNIX). Poco tiempo después se integró a la Free Software Foundation (FSF) para coordinar el esfuerzo del software libre. La influencia y liderazgo de Stallman para establecer un marco de referencia moral, político y legal del movimiento de software libre, como alternativa al software propietario.

Una contribución de Richard Stallman al movimiento del software libre es inventar el concepto de copyleft (contrario a copyright). Elemento clave en la propuesta de la Licencia Pública General de GNU, conocida por sus siglas en inglés, GPL/GNU.
En 1990 el sistema operativo GNU estaba casi completo, el único componente que faltaba era el núcleo (kernel), también llamado Hurd. Un año después, en 1991, Linus Torvalds, un estudiante finlandés frustrado por tener que usar MS-DOS y queriendo evitar las limitaciones de MINIX, envió un mensaje por Internet al grupo de noticias comp.os.minix en el cual mencionaba que estaba trabajando en un versión libre similar a MINIX. Éste era un sistema operativo bastante reducido creado por Andrew Tanenbaum con fines didácticos, el sistema era bastante simple y con pocas funcionalidades.

Torvalds ponía a disposición (en la red Internet) esta versión de Minix, para quien la quisiera usar y a su vez invitaba a realizar aportaciones que sirvieran para mejorarla. A partir de ese momento y empleando los componentes desarrollados por el proyecto GNU y la Internet como vehículo de comunicación, Linus consiguió convertirse en el líder de una comunidad de desarrolladores diseminada por todo el mundo. Al sistema operativo desarrollado por Linus con ayuda de la comunidad, se le designó el nombre de Linux, en honor al esfuerzo de Torvalds. Con el núcleo de Linux y con la mayor parte del sistema GNU completada, y respaldado por la licencia GPL (General Public License), la cual se sustenta sobre el concepto de "copyleft", la primera versión del sistema operativo GNU/Linux se libera en septiembre de 1991.

Lo interesante del sistema operativo Linux, no era ni su diseño ni tampoco su filosofía, sino su metodología de desarrollo de software. En ese entonces el software se escribía en grupos cerrados, mientras que Linus Torvalds proponía un modelo distribuido, abierto, y cualquier persona interesada en contribuir al software podría participar. A este modelo en el cual se desarrolla Linux y la mayoría del software libre se le conoce como bazar. Al modelo tradicional empleado por las compañías desarrolladoras de software propietario se le conoce como catedral. Este concepto lo explica más detalladamente Eric S. Raymond en un ensayo titulado La Catedral y El Bazar, el cual pueden encontrar en la red. Eric S. Raymond es también uno de los personajes importantes del movimiento software libre y Open Source. Con el transcurrir del tiempo surgieron pequeñas compañías que empezaron a empaquetar en un conjunto de disquettes (hoy CDs/DVDs) el núcleo de Linux provisto con una interfase gráfica, acompañado con programas de GNU y utilerías de software libre, con lo que se facilitaba su instalación. A estos conjuntos de CD/DVD se les denomina Distribuciones de GNU/Linux. Estas distribuciones de software libre bajo licencia GPL/GNU son desarrolladas por empresas de software como Red Hat y SuSE. Otras distribuciones son desarrolladas por organizaciones de programadores voluntarios, tales como Debian, Ubuntu, Gentoo, entre otras.
El Software libre a lo largo de estos años no ha dejado de crecer y multiplicarse. Existen en la red de Internet miles de desarrolladores de software dispuestos a contribuir para la causa de este movimiento.