miércoles, 11 de febrero de 2015

Software Libre y Open Source


Estamos habituados a escuchar eso de software libre y aunque en un principio eramos mucho más escépticos cada vez más buscamos una solución legal dentro de este tipo de software frente a esos programas comerciales cuyo precio es prohibitivo.

En esta entrada del blog vamos a explicar un poco en qué consiste esto de Software Libre o Software de Código Abierto (Open Source) además de eliminar el concepto erróneo que los identifica con Software Gratuito (Freeware). Una confusión que parte de que aunque no sean lo mismo la mayoría de software libre es software de código abierto y a la vez software gratuito.

Vamos a comenzar tratando de definir en qué consiste cada uno de esos tipos de software y lo primero es hacer una mención al Software Propietario que es el antagonista del Software Libre. No vamos a mencionar la historia de cada término ni como aparecen porque es algo para lo que existe mucha información en Internet y solo iba a servir para hacer más extenso y menos claro el artículo.

Software Propietario

Digamos que software propietario es todo software con una licencia de uso solo bajo determinadas circunstancias y que prohibe su estudio, modificación o redistribución además de que generalmente el código fuente del mismo no está disponible.

Como ejemplo la mayoría de programas más conocidos pertenecen a este tipo de software como Windows, Office, AutoCad, Photoshop....etc. Estos programas los puedes utilizar sin problema pero aunque hayas pagado por ellos no tienes derecho a modificarlos ni revenderlos. Es como si compras un coche pero no puedes cambiar las llantas ni la radio sino que solo tienes permiso para utilizarlos.

Es importante aclarar que el Software Privativo no implica que sea exclusivamente Software Comercial. Se puede distribuir también gratuitamente como por ejemplo en el caso del Freeware.

Freeware

El termino Freeware se refiere al software que se distribuye de manera gratuita y sin ninguno limite de tiempo. Se utiliza el significado libre de coste que tiene la palabra "Free" que como veremos poteriormente no es el único.

Dentro del Freeware podemos encontrar mucha variedad de licencias como las que solo permiten un uso privado del programa, aquellas que prohiben su modificación, impiden su distribución o venta..etc.
 Las empresas suelen utilizar licencias de este tipo de software para dar a conocer sus programas y posteriormente ofrecer características adicionales que ya son de pago.

Es importante señalar que Freeware puede ser desde Software Propietario a Software Libre siempre que se distribuya de manera gratuita independientemente de los usos que te permita la licencia.


Además del Freeware podríamos mencionar también el Shareware. En el caso de este tipo de software los programa se distribuyen de manera gratuita pero con ciertas limitaciones o por un periodo de tiempo limitado a modo de prueba.  Dentro de esta categoría de Shareware yo incluiría los términos Trialware o Demoware (las famosas demos).

Software Libre

Vamos a empezar aclarando que el término Software Libre no quiere decir Software Gratuito. La confusión parte del término original en ingles "Free Software" pero ese Free no se refiere a gratis como en Freeware sino a otra acepción de la palabra que significa libertad. Otro de los motivos que contribuye a la confusión es que la enorme mayoría de Software Libre se distribuye de manera gratuita. No obstante un programa de software libre puede ser distribuido perfectamente de manera comercial siempre que se cumplan las condiciones que veremos a continuación.

Software libre es todo aquel software que otorga al usuario final la libertad para usarlo,estudiarlo,compartirlo o modificarlo. Para poder estudiarlo y modificarlo obviamente es necesario que el código fuente del programa sea público. 

Según la ultima definición de software libre publicada por la Free Software Foundation para que un programa o aplicación sea considerado software libre debe cumplir 4 libertades:
  • La libertad de ejecutar el programa como desees con cualquier propósito.
  • La libertad de estudiar como funciona el programa y modificarlo como desees. Es necesario permitir el acceso al código fuente.
  • La libertad para redistribuir copias del programa de manera que puedas ayudar al vecino.
  • La libertad para distribuir tus versiones modificadas del programa y así poder beneficiar al resto de la comunidad con tus cambios. Para ello nuevamente es necesario permitir el acceso al código fuente.

Open Source ( Software de Código Abierto).

El término de Código Abierto aparece en parte debido a la ambiguedad del término free software y a que su asociación con gratuito chocaría con la idea de libertad. Además todo lo que se asocia a gratuito provocaba que las empresas no se interesasen por el desarrollo de estos proyectos por lo que un cambio de denominación parecía apropiado para atraer más participación.

Software de Código abierto es aquel software en el que su código fuente está publicado con un licencia que permite el derecho para estudiarlo, cambiarlo y distribuirlo a cualquiera para cualquier propósito. Como vemos en realidad es practicamente idéntica a la definición de software libre, de hecho se podría decir que casi todo software libre es software de código abierto aunque no siempre al revés.

Según la Open Source Iniciative existen 10 características fundamentales que debe cumplir cualquier software para ser considerado Software de Código Abierto.

  • Libre Redistribución.  La Licencia no puede restringir la redistribución o la venta del software.
  • El Código Fuente debe ser distribuido junto al programa o ser de acceso público.
  • Trabajos Derivados. La licencia debe permitir los trabajos derivados y las modificaciones del software original así como la distribución de las mismas.
  • Integridad del Código Fuente del Autor. Está permitido que la licencias obliguen a mantener el código fuente del autor integramente y que las modificaciones se distribuyan como parches.
  • No discriminación de personas y grupos. La licencia no debe discriminar el uso por parte de ninguna persona o grupo.
  • No discriminación en el uso del programa. La licencia debe permitir cualquier uso del programa incluso para la faceta comercial. No tiene porque ser gratuito.
  • Distribución de la Licencia. Se aplican los mismos derechos a todo aquel que reciba el programa.
  • La Licencia no debe ser específica de un producto.  Si el programa se distribuye formando parte de una distribución de software se debe asegurar que mantenga los mismos derechos.
  • La Licencia no debe restringir otro software. El programa se puede distribuir conjuntamente con software que no sea open source.
  • La Licencia debe ser tecnológicamente neutral. No debe requerirse la aceptación de la licencia

Diferencias entre Software Libre y Open Source.

Hemos visto que software libre o software de código abierto vienen a ser practicamente lo mismo y en una amplia mayoría los programas que pertenecen a un grupo pertenecen también al otro así como sus licencias. Cual es por tanto la diferencia que existe entre uno y otro?

Pues la diferencia fundamental es el objetivo de ambos. Para el movimiento por el software libre la utilización de software libre es una cuestión moral y filosófica. Se trata de potenciar la cooperación y la solidaridad entre personas, compartir conocimientos que mejoren la vida de las personas. El software que no es libre es un problema social. En cambio en el caso del movimiento Open Source se trata de una cuestión practica, compartir el código fuente entre la comunidad ayuda a mejorar los programas y solucionar los errores de manera rápida y mucho más eficiente.

Después si entramos en diferencias en cuanto a las características de sus programas nos vamos a encontrar muy pocas. Una diferencia que podemos señalar es a la hora de distribuir las modificaciones. En software libre hay una herencia de licencia que implica que dichos cambios deben distribuirse bajo la misma licencia del software original. Aquellos que adquieren tu modificación deben tener los mismos derechos que tuviste tu al adquirir el software original. En el caso del software Open Source no es necesario y las modificaciones pueden ser ditribuidas con otra licencia.

Otra diferencia a señalar también es que en el caso de Open Source es posible distribuir conjuntamente una parte de software con el código abierto junto con otra parte que no lo sea. En el caso del software libre no está permitido.

Al final para el usuario de los programas que no sea desarrollador tanto el software libre como el software de código abierto van a ser lo mismo y como hemos mencionado al inicio en la inmensa mayoría de casos van a ser también software gratuito.

Por está similitud y como además el hecho de que la licencia GNU GPL que es con mucho la más popular de la Asociación por el Software Libre también está entre las admitidas por la Iniciativa Open Source pues no es tan fácil poner ejemplos diferentes de software perteneciente a una y no a la otra categoria.

Ejemplos de Software Open Source y Libre  populares son los paquetes ofimáticos Open OfficeLibre Office, el editor de imágenes GIMP, el reproductor multimedia VLC, el programa de Diseño 3D Blender....etc