viernes, 24 de abril de 2009

Software libre


Historia:


Entre los años 60 y 70 del Siglo XX, el software no era considerado un producto sino un añadido que los vendedores de los grandes computadores de la época (los mainframes) aportaban a sus clientes para que éstos pudieran usarlos. En dicha cultura, era común que los programadores y desarrolladores de software compartieran libremente sus programas unos con otros. Este comportamiento era particularmente habitual en algunos de los mayores grupos de usuarios de la época, como DECUS (grupo de usuarios de computadoras DEC). A finales de los 70, las compañías iniciaron el hábito de imponer restricciones a los usuarios, con el uso de acuerdos de licencia.
Allá por el 1971, cuando la informática todavía no había sufrido su gran boom, las personas que hacían uso de ella, en ámbitos universitarios y empresariales, creaban y compartían el software sin ningún tipo de restricciones.
Con la llegada de los años 80 la situación empezó a cambiar. Las computadoras más modernas comenzaban a utilizar sistemas operativos privativos, forzando a los usuarios a aceptar condiciones restrictivas que impedían realizar modificaciones a dicho software.
En caso de que algún usuario o programador encontrase algún error en la aplicación, lo único que podía hacer era darlo a conocer a la empresa desarrolladora para que esta lo solucionara. Aunque el programador estuviese capacitado para solucionar el problema y lo desease hacer sin pedir nada a cambio, el contrato le impedía que mejorase el software.
El mismo Richard Stallman cuenta que por aquellos años, en el laboratorio donde trabajaba, habían recibido una impresora donada por una empresa externa. El dispositivo, que era utilizado en red por todos los trabajadores, parecía no funcionar a la perfección, dado que cada cierto tiempo el papel se atascaba. Como agravante, no se generaba ningún aviso que se enviase por red e informase a los usuarios de la situación.
La pérdida de tiempo era constante, ya que en ocasiones, los trabajadores enviaban por red sus trabajos a imprimir y al ir a buscarlos se encontraban la impresora atascada y una cola enorme de trabajos pendientes. Richard Stallman decidió arreglar el problema, e implementar el envío de un aviso por red cuando la impresora se bloqueara. Para ello necesitaba tener acceso al código fuente de los controladores de la impresora. Pidió a la empresa propietaria de la impresora lo que necesitaba, comentando, sin pedir nada a cambio, qué era lo que pretendía realizar. La empresa se negó a entregarle el código fuente.
En ese preciso instante, Richard Stallman se vio en una encrucijada: debía elegir entre aceptar el nuevo software privativo firmando acuerdos de no revelación y acabar desarrollando más software privativo con licencias restrictivas, que a su vez deberían ser más adelante aceptadas por sus propios colegas.
Con este antecedente, en 1984, Richard Stallman comenzó a trabajar en el proyecto GNU, y un año más tarde fundó la Free Software Foundation (FSF). Stallman introdujo una definición para free software y el concepto de "copyleft", el cual desarrolló para dar a los usuarios libertad y para restringir las posibilidades de apropiación del software.


El software libre:

Es aquel que no ata a los usuarios, ni les hace depender de los desarrolladores, sean estos empresas o particulares. Es un software que se puede copiar, modificar, distribuir o incluso vender copias, sin tener que pedir permiso a nadie. Lo único que no se puede hacer es que las copias modificadas tengan menos libertad que las originales. Es el conjunto de programas, procedimientos y documentos relacionados con el sistema hardware. Es la herramienta de que se vale el usuario para obtener el resultado esperado de un procesamiento de datos.

es un tipo particular de software que le permite al usuario el ejercicio de cuatro libertades básicas:
*Ejecutarlo con cualquier propósito
*Estudiar como funciona y adaptarlo a sus necesidades
*Distribuir copias
*Mejorarlo, y liberar esas mejoras al publico
*Con la única restricción del copyleft (o sea, cualquiera que redistribuya el software, con o sin cambios, debe dar las mismas libertades que antes), y con el requisito de permitir el acceso al código fuente (imprescindible para ejercer las libertades 1 y 3).


Tipos de Licencias de Software libre:


*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.


*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 debil. 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 tenidos 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.


Importancia de afrontar el estudio del Software Libre:


Económica: el costo de las licencias de Software Propietario es bastante importante, y por la situación económica actual, imposible de afrontar de la manera que los fabricantes de Software lo piden.

Legal: el Software Libre es siempre legal, salvo contadas excepciones (p/ej., que compilemos el código fuente y lo vendamos como propietario). Por lo tanto, al utilizar este tipo de software estaremos siempre "por derecha", por lo que no seremos pasibles de multas y/o prisión.

Técnica: es sabido que Microsoft ha dejado de ofrecer soporte de desarrollo para Windows 95 y Windows 98, por lo que si hoy o mañana se descubre un error en ellos, Microsoft no esta obligado a repararlo. Para solucionar esto, tendríamos dos caminos: a) Migrar a otras versiones de Sistema Operativos de Microsoft: esto lleva aparejado una serie de costos, principalmente en licencias, luego costos de implantación, soporte e interoperabilidad, y además implica volver a hacer lo mismo dentro de dos o tres años. b) Utilizar Software Libre

Laboral: la implementación de Software Libre plantea un futuro muy prometedor para aquellas personas que sepan programar, traducir, utilizar un programa, enseñar, etc. Si tenemos que elegir entre pagar una licencia de software a un coloso informático o darle trabajo directamente a una persona, es de esperar que nos volquemos a la segunda alternativa.


Ventajas del Software Libre:


*Escrutinio Publico: Al ser muchos las personas que tienen acceso al código fuente, eso lleva a un proceso de corrección de errores muy dinámico, no hace falta esperar que el proveedor del software saque una nueva versión.

*Independencia del proveedor:
Al disponer del código fuente, cualquier persona puede continuar ofreciendo soporte, desarrollo u otro tipo de servicios para el software.
No estamos supeditados a las condiciones del mercado de nuestro proveedor, es decir que si este se va del mercado porque no le conviene y discontinua el soporte, nosotros podemos contratar a otra persona.

*Manejo de la Lengua:
-Traducción: cualquier persona capacitada puede traducir y adaptar un software libre a cualquier lengua.
-Corrección ortográfica y gramatical: una vez traducido el software libre puede presentar errores de este tipo, los cuales pueden ser subsanados con mayor rapidez por una persona capacitada.

*Mayor seguridad y privacidad:
Los sistemas de almacenamiento y recuperación de la información son públicos. Cualquier persona puede ver y entender como se almacenan los datos en un determinado formato o sistema.
Existe una mayor dificultad para introducir código malicioso como ser: espía (p/ej. capturador de teclas), de control remoto (p/ej. Troyano), de entrada al sistema (p/ej. puerta trasera), etc.

*Garantía de continuidad:

El software libre puede seguir siendo usado aun después de que haya desaparecido la persona que lo elaboro, dado que cualquier técnico informatico puede continuar desarrollándolo, mejorándolo o adaptándolo.

*Ahorro en costos:

En cuanto a este tópico debemos distinguir cuatro grandes costos: de adquisición, de implantación (este a su vez se compone de costos de migración y de instalación), de soporte o mantenimiento, y de interoperabilidad. El software libre principalmente disminuye el costo de adquisición ya que al otorgar la libertad de distribuir copias la puedo ejercer con la compra de una sola licencia y no con tantas como computadoras posea (como sucede en la mayoría de los casos de software propietario). Cabe aclarar que también hay una disminución significativa en el costo de soporte, no ocurriendo lo mismo con los costos de implantación y de interoperatividad.

No hay comentarios:

Publicar un comentario