EL SOFTWARE LIBRE
¿Qué es el Software Libre?
Se denomina Software Libre a aquellos programas informáticos que le dan a sus usuarios, por decisión explícita de sus programadores y diseñadores, el acceso al código fuente o código de programación original en que fueron fabricados, para que pueda copiar, modificar, personalizar y distribuirlo libremente. Esto da origen, por ende, a múltiples versiones del mismo programa, cuya aparición no representa una violación legal o ética del programa original.
El término Software Libre se le atribuye al estadounidense Richard Stallman, quien fue fundador de la Free Software Foundation (Fundación del Software Libre) en la cual un número importante de computistas expertos aspiraba a desarrollar un Sistema Operativo totalmente libre, que llamaron Proyecto GNU (Para distinguirlo de Unix).
Este proyecto permitiría a sus usuarios avanzados colaborar con su desarrollo y perfeccionamiento, de modo gratuito y comunitario, yendo en contra de las empresas tradicionales de software, que celan el código fuente de sus productos.
Si bien muchas de las presentaciones del Software Libre son gratis o cuestan lo equivalente a su distribución únicamente (y no al pago de derechos de autor), no debe confundirse al Software Libre con el Freeware o Software gratis (usualmente en versiones de prueba), ni debe interpretárselo como un alegato a favor de la piratería (robo de software protegido por derechos de autor).
La idea es justamente crear un software que pertenezca a quienes lo usen y que pueda ser adaptado a sus necesidades por ellos mismos.
Existe una tendencia importante, especialmente en países del llamado Tercer Mundo, a implementar en sus instituciones oficiales u organizaciones estatales solamente Software Libre, reemplazando así programas protegidos por derechos de autor que generan gastos anuales en renovación de licencias.
Esto además de ahorrar dinero les brinda una mayor autonomía en el manejo de su información y les permite evitar riesgos a su soberanía, ya que el código libre de estas piezas de software puede ser adaptado gratuitamente a sus necesidades puntuales.
software libre
Software libre significa que los usuarios tienen la libertad de ejecutar, copiar, distribuir, estudiar, modificar y mejorar el software.
El software libre es una cuestión de libertad, no de precio. Para entender el concepto, debe pensarse en «libre» como en «libertad de expresión», no como en «cerveza gratis».
Más precisamente, software libre significa que los usuarios de un programa tienen las cuatro libertades esenciales:
- La libertad de ejecutar el programa como lo desee, con cualquier propósito (libertad 0).
- La libertad de estudiar el funcionamiento del programa y modificarlo de modo que realice las tareas como usted desee (libertad 1). El acceso al código fuente es un prerrequisito para esto.
- La libertad de redistribuir copias para ayudar a los demás (libertad 2).
- La libertad de distribuir copias de sus versiones modificadas a otras personas (libertad 3). Al hacerlo da a toda la comunidad la oportunidad de beneficiarse de sus cambios. El acceso al código fuente es un prerrequisito para esto.
Debido a la evolución de la tecnología y del uso de la red, estas libertades son ahora aún más importantes que en 1983.
Hoy en día el movimiento del software libre va mucho más allá del desarrollo del sistema GNU. Consulte el sitio de la Free Software Foundation para obtener más información sobre lo que hacemos y cómo colaborar.
Más acerca de GNU
GNU es un sistema operativo de tipo Unix, lo cual significa que se trata de una colección de muchos programas: aplicaciones, bibliotecas, herramientas de desarrollo y hasta juegos. El desarrollo de GNU, iniciado en enero de 1984, se conoce como Proyecto GNU. Muchos de los programas de GNU se publican bajo el auspicio del Proyecto GNU y los llamamos paquetes de GNU.
El nombre «GNU» es un acrónimo recursivo de «GNU No es Unix». «GNU» se pronuncia en inglés como una sílaba sin vocal entre la g y la n. En español se puede pronunciar de la misma manera, o bien reemplazando gn por una ñ, como en ñu. También es aceptable en español la pronunciación de cada una de las letras por separado: G-N-U (ge-ene-u).
En un sistema de tipo Unix, el programa que asigna los recursos de la máquina y se comunica con el hardware se denomina «núcleo». GNU se usa generalmente con un núcleo llamado «Linux». Esta combinación es el sistema operativo GNU/Linux. Millones de personas usan GNU/Linux, aunque muchos lo llaman erróneamente «Linux».
El desarrollo del núcleo propio de GNU, Hurd, se inició en 1990 (antes de que comenzara el de Linux). Programadores voluntarios continúan desarrollando Hurd por tratarse de un proyecto técnico interesante.
AJAX Y JAVA
AJAX, en resúmen, es el acrónimo para Asynchronous JavaScript + XML y el concepto es: Cargar y renderizar una página, luego mantenerse en esa página mientras scripts y rutinas van al servidor buscando, en background, los datos que son usados para actualizar la página solo re-renderizando la página y mostrando u ocultando porciones de la misma.
Si su programa es software libre, básicamente es ético, pero hay una trampa a la que debe estar atento. Su programa, aunque en sí mismo sea libre, puede estar limitado por alguna dependencia de software que no es libre. En la actualidad este problema se da sobre todo en los programas Java, por lo que lo llamamos «la trampa de Java».
Un programa es software libre si sus usuarios tienen ciertas libertades esenciales. Sin entrar en detalles, éstas son: la libertad de ejecutar el programa, la libertad de estudiar y modificar el código fuente, la libertad de redistribuir el código fuente y los binarios, y la libertad de publicar versiones mejoradas (véase http://www.gnu.org/philosophy/free-sw.html). Que un programa en forma de código fuente sea software libre depende únicamente de los términos de su licencia.
Que el programa pueda ser usado en el mundo libre por personas que quieren vivir en libertad es una cuestión más compleja. No es algo que esté determinado únicamente por la licencia del programa, porque ningún programa funciona aislado. Todos los programas dependen de otros programas. Por ejemplo, un programa necesita ser compilado o interpretado, por lo tanto depende de un compilador o de un intérprete. Si es compilado en bytecode, depende de un intérprete de bytecode. Además, necesita bibliotecas para ejecutarse, y también puede invocar a otros programas aparte que se ejecutan en otros procesos. Todos estos programas son dependencias. Las dependencias pueden ser necesarias para poder ejecutar el programa, o pueden ser necesarias solamente para ciertas funciones. En cualquier caso, el programa entero, o alguna parte del mismo, no puede funcionar sin las dependencias.
Si algunas de las dependencias de un programa no son libres, entonces ese programa o una parte de él no se puede ejecutar en un sistema completamente libre: es inutilizable en el mundo libre. Ciertamente podemos redistribuir el programa y tener copias en nuestras máquinas, pero eso no sirve de mucho si no podemos ejecutarlo. El programa es software libre, pero en la práctica está encadenado por dependencias que no son libres.
Este problema puede suceder en cualquier tipo de software, en cualquier lenguaje. Por ejemplo, un programa libre que solamente funcione en Microsoft Windows es claramente inútil en el mundo libre. Pero el software que funciona en GNU/Linux también puede ser inútil si depende de otro software que no sea libre. En el pasado, Motif (antes de que tuviéramos LessTif) y Qt (antes de que sus desarrolladores lo convirtieran en software libre) fueron importantes causantes de este problema. La mayoría de las tarjetas gráficas 3D solamente funcionan a pleno rendimiento con controladores que no son libres, que también originan este problema. Pero hoy en día la causa principal de este problema es Java, porque los programadores que escriben software libre a menudo se sienten atraídos por Java. Cegados por su atracción hacia el lenguaje, descuidan el problema de las dependencias y caen en la trampa de Java.
La implementación de Java de Sun no es libre. Las bibliotecas estándar de Java tampoco son libres. Sí que tenemos implementaciones libres de Java, como el compilador de GNU para Java (GCJ) y Classpath de GNU, pero todavía no tienen todas las funcionalidades. Aún estamos trabajando en ello.
Si usted escribe un programa Java sobre la plataforma Java de Sun, está expuesto a usar funcionalidades exclusivas de Sun sin ni siquiera advertirlo. Para cuando se dé cuenta, quizás las haya estado usando durante meses, y rehacer el trabajo podría llevarle aún más tiempo. Podría pensar: «Volver a empezar es demasiado trabajo». Entonces su programa habrá caído en la trampa de Java y será inutilizable en el mundo libre.
