Guía v5/Software libre, el principio

De Guadapedia, la enciclopedia libre.

Tabla de contenidos

Software libre, el principio

Breaking Windows, de Lissanne Lake
Enlarge
Breaking Windows, de Lissanne Lake

Así en breve, un ordenador es un intento de crear vida inteligente, de replicar la mente humana y evolucionarla a nuevas metas [1] (http://es.wikipedia.org/wiki/Ordenador). Hasta ahora los intentos han sido poco exitosos, y los expertos coinciden en que aún estamos construyendo máquinas más tontas que listas aunque -eso sí- muy rápidas. Las investigaciones prosiguen con entusiasmo. Nosotros entramos en materia.

Un ordenador sin corriente eléctrica es poco más que una estructura inerte de silicio, metales y plásticos. El silicio, material que los humanos empezaron a tallar como sílex en la Edad de Piedra, se encuentra en el corazón de todos los microprocesadores. Los metales, cuya manipulación contribuyó a la creación de las sociedades urbanas del Neolítico, se disponen en placas y cables propiciando las conexiones. Los plásticos, producto de la Segunda Revolución Industrial que abrió las puertas de la globalización, sujetan, protegen, accionan y disfrazan casi todos los componentes.

La corriente eléctrica, otro producto de la Segunda Revolución Industrial sin el cual la globalización sería impensable, es capaz de convertir esta estructura fría en una máquina latente. Un ordenador encendido es capaz de captar secuencias de luz y no-luz e interpretarlas como unos y ceros, puede realizar millones de cálculos por segundo y generar calor. Sin embargo, con silicio, metales, plásticos y corriente eléctrica un ordenador no ofrece a un usuario mucho más que un viejo radiador de aceite.

Es el software quien le da algo así como vida e inteligencia a un ordenador, quien nos permite operar adecuadamente con sílice, metales, plásticos y electricidad para generar ordenamientos útiles de luz y no-luz, para computar unos y ceros, para procesar información automática. Es el software quien genera la informática.

Al principio el software fue libre [2] (http://es.wikipedia.org/wiki/Software_Libre). Luego llegó el comercio y lo encerró. Ahora vive un proceso de liberación donde incluso los comerciantes de la globalización juegan un papel importante. Ideologías, éticas, activismos y negocios se alían o se enfrentan alrededor de dos paradigmas hoy por hoy contrapuestos pero que posiblemente acaben encontrando una conciliación: el software propietario y el software libre.

Tecleando desde nuestro escritorio esta confrontación nos puede sonar lejana y ajena, pero casi cada vez que encendemos un ordenador estamos tomando partido.


De qué hablamos cuando hablamos de "software"

Software [3] (http://es.wikipedia.org/wiki/Software) es un término inglés con el que se denomina a los programas informáticos. Hasta aquí la mayoría llega. Existe el software de gestión de empresa, de tratamiento de imágenes, de composición musical, software educativo, los juegos de ordenador... Pero en realidad estos programas se refieren a una sola categoría de software: las aplicaciones [4] (http://es.wikipedia.org/wiki/Aplicaci%C3%B3n).

Donde la mayoría ya no llega es a identificar otros tipos de programas que figuran igualmente bajo el paraguas de la etiqueta software: sistemas operativos, entornos de escritorio, controladores de dispositivo (drivers), servidores, librerías, compiladores... Para entender el software libre no es imprescindible entender estos términos. Sí es necesario comprender que cuando hablamos de software libre no sólo nos estamos refiriendo a las aplicaciones sino también a esos otros tipos de programas que le dan vida al ordenador y sin los cuales no hay forma de activarlo y trabajar con él.


Qué implica "libre"

De la misma manera que nosotros somos inocentes al nacer, el software es libre en el momento de su creación. Son procesos posteriores los que lo pueden convertir en software propietario y, por tanto, no libre.

El software viene a ser como una literatura de la lógica. Cada programa está formado por un conjunto de líneas de código escritas en alguno de los múltiples lenguajes informáticos. Mientras el programador produce código éste se encuentra en su estado puro: cadenas de letras, números y signos estructuradas secuencialmente y humanamente legibles (para quien entienda ese lenguaje). A esto se le denomina el código fuente del programa.

A la hora de publicar su trabajo, los programadores pueden escoger entre mantener el código fuente abierto o cerrarlo con candado. Si lo mantienen abierto otros programadores podrán acceder a él y entender el funcionamiento del programa, como si estuvieran explicando su preparación del gazpacho. Si lo cierran nadie puede acceder a su código y por tanto la receta se mantiene secreta, dejando de ser software libre.

A la hora de publicar su trabajo, un programador puede escoger entre una miríada de licencias para regular su uso, copia, distribución, modificación... Las condiciones de la licencia de un programa determinan el que sea o no sea libre, aun teniendo el código fuente abierto:

  • Las licencias libres permiten que el software pueda ser usado, copiado, estudiado, modificado y redistribuido libremente, sin necesidad de más autorización y sin limitaciones. La licencia libre por excelencia es la Licencia Pública General, conocida por su acrónimo GPL [5] (http://es.wikipedia.org/wiki/GPL).
  • Las licencias no libres restringen el uso, copia, estudio, modificación y/o redistribución del software, exigiendo por lo general autorizaciones y limitaciones. La licencia no libre por excelencia es la que se resume con la conocida (aunque legalmente obsoleta) frase Todos los derechos reservados.


La importante distinción entre libre y gratis

Nótese que el precio no figura entre los factores que determinan si el software es libre o no. Existe una confusión generalizada entre el software libre y el software gratuito, en buena parte debida a que en inglés libre y gratis se traducen ambos como free. La necesidad de clarificar esta ambivalencia está llevando a muchos angloparlantes a adoptar la palabra española "libre" para dejar las cosas claras [6] (http://libresoft.urjc.es/planet/).

Aunque la mayoría del software libre es también gratuito, puede existir y existe software libre comercializado que requiere un pago para su obtención. Los ejemplos más habituales son ediciones en CD/DVD, a veces empaquetadas con sus manuales impresos y enviadas a domicilio.

A la inversa, también existe software no libre pero gratuito, como es el caso del freeware [7] (http://es.wikipedia.org/wiki/Freeware), el shareware o las versiones de demostración de programas 100% propietarios. O dicho de otra manera, buena parte del software aparentemente "de regalo" que se distribuye mediante revistas y suplementos dominicales, así como el que podemos descargar "gratuitamente" a cambio de entregar nuestros datos personal al marketing y/o tragar no poca publicidad.

En general el software libre no requiere registro para su descarga y uso, no contiene publicidad (adware [8] (http://es.wikipedia.org/wiki/Adware)) y menos aún programas espías (spyware [9] (http://es.wikipedia.org/wiki/Spyware)) que sin nuestro conocimiento ni consentimiento nos sigan e informen a alguien de nuestros pasos.


Lo bueno del software libre

Que el software libre es bueno puede parecer a veces un corolario indemostrable o una afirmación de fe, a decir del convencimiento de muchos de los que lo utilizan y disfrutan. Vamos a profundizar en esta supuesta tautología enumerando aspectos positivos concretos.


Beneficios del código abierto

  • Apertura: principal beneficio que permite obtener el resto de los beneficios listados a continuación, la mayoría de los cuales serían irrealizables con código cerrado bajo candado.
  • Transparencia: la calidad del código está a la vista de quien la quiera y sepa controlar.
  • Seguridad: imposibilidad de esconder secretamente herramientas de espionaje, bombas informáticas, caballos de Troya y demás código malicioso ignorado por los usuarios.
  • Aprendizaje: por complejo que sea un programa los aprendices de brujo pueden repasar su código y formarse con él.
  • Herencia cultural: todo el código disponible pasa a formar parte de los recursos públicos de los que dispone la Humanidad.


Beneficios de la libertad de uso del software

  • Legalidad: conceptos como la piratería o el uso indebido pierden sentido.
  • Universalidad: no se pueden discriminar tipos de uso ni tipos de usuarios.
  • Testeo: más gente puede hacer pruebas desde las primeras fases de desarrollo, por lo que el software resultante es más consistente.
  • Evaluación: facilidad para probar enteramente diversos programas antes de tomar una elección.


Beneficios de las libertades de adaptar y mejorar el código

  • Personalización: posibilidad de adaptar el software a nuestras necesidades con recursos propios.
  • Localización: posibilidad de traducir el software a nuestro idioma.
  • Inversión local: posibilidad de contratar desarrollos en el propio entorno y fomentar la industria local.
  • Colaboración abierta entre desarrolladores: cualquiera puede aportar mejoras utilizando sistemas de control de versiones que evitan el caos improductivo.
  • Colaboración entre usuarios y desarrolladores: las propuestas de mejora de los usuarios pueden ser llevadas a la práctica por desarrolladores voluntarios y hasta por los propios usuarios.
  • Descentralización: equipos de desarrolladores pueden centrarse en módulos o partes concretas del programa trabajando en paralelo con otros equipos dedicados en otros módulos.
  • Reciclaje: fragmentos de código de un programa pueden ser reutilizados para otros programas.
  • Continuidad: si un programa es abandonado por sus desarrolladores iniciales, otros pueden retomar el trabajo.
  • Desvinculación: cualquiera puede optar por iniciar una nueva rama de desarrollo de un programa si lo estima conveniente, como quien deja de visitar un bar para montar el suyo propio.
  • Comunidad: todas estas dinámicas propician la creación de comunidades generalmente abiertas, bastante horizontales y reguladas por una meritocracia benigna.


Beneficios de la libertad de distribución del software

  • Disponibilidad: muchos pueden obtener software libre en cualquier momento mediante Internet.
  • Diseminación: distribuidores menores pueden distribuir el software allí donde los principales canales no quieren o no pueden llegar, por ejemplo lugares sin Internet.
  • Precio: la posibilidad de distribuir el software gratuitamente elimina el riesgo de precios abusivos.

La lista es incompleta, quizás encontremos más bondades.


Las dos corrientes de un mismo movimiento

Parece que en cualquier movimiento de calado generado por los humanos se acaban definiendo dos tendencias que se diferencian a la vez que se complementan: apocalípticos e integrados, liberales y libertarios, ética y pragmatismo, el yin y el yang... El movimiento del software libre es de calado y tiene dos corrientes que ofrecen perspectivas con matices diferentes (para unos básicos, para otros mínimos) sobre la bondad y utilidad del software libre o el código abierto.

Un porcentaje notorio de los defensores del software libre han llegado a él por unas motivaciones éticas o políticas. Los ejemplos pueden ir desde simpatizantes de ideologías libertarias a defensores de los movimientos ciudadanos o gente a la que simplemente le motiva erosionar (ellos utilizan otro verbo) a Microsoft. Los referentes básicos de esta corriente son la Free Software Foundation [10] (http://www.fsf.org/) y el proyecto GNU [11] (http://www.gnu.org/).

Otro porcentaje notorio es el de los que anteponen las ventajas prácticas que implica el hecho de mantener el código fuente abierto y permitir su copia, distribución y evolución. Los perfiles en esta línea pueden ser ingenieros interesados en la eficiencia de los sistemas colaborativos, directivos técnicos de empresas altamente innovadoras o académicos entregados a la investigación. Esta corriente ha ido encontrando su visibilidad a partir del concepto de código abierto y la Open Source Initiative [12] (http://opensource.org/).

Ambos porcentajes pueden solaparse y perfiles mencionados en una corriente se encuentran también en la otra. Estamos hablando de dos tendencias que difieren en algunas motivaciones y definiciones básicas, pero que en la práctica colaboran y recomiendan a los usuarios y desarrolladores casi el mismo tipo de acciones y estrategia.

A medida que la comunidad del software libre crece y nuevos usuarios se suman a ella, más gente hay que simpatiza con ambas perspectivas o simplemente las desconoce: dinámica habitual en todo movimiento de calado que deja de ser minoritario y empieza a tener una implantación en la sociedad.


Quién produce todo esto y por qué

En la actualidad existen varios sistemas operativos libres, varios entornos de escritorio libres, centenares de distribuciones, miles de programas, todo esto disponible en múltiples idiomas. La inmensa mayoría de este software es gratuito y se encuentra en Internet a dos golpes de ratón. Por supuesto también existen diversos grados de calidad, habiendo muchos programas inacabados, inestables, redundantes... Pero lo importante es que casi todo lo que necesita un usuario corriente está disponible con calidades profesionales equiparables a las de sus equivalentes propietarias.

¿De dónde sale todo este software? ¿Cómo puede ser competente y a la vez gratuito? ¿Alguien se dedica profesionalmente a esto? ¿De qué ingresos vive?

Son preguntas que se formulan los neófitos y hasta quienes llevan años metidos en este tema. Los modelos económicos del software libre y las fórmulas de su sostenibilidad no están consolidados, e incluso su debate teórico está en sus primeros estadios. Lo que no quiere decir que el software libre no tenga modelos económicos ni sea sostenible. Lo que sucede es que los investigadores (aficionados o profesionales) no han estudiado este fenómeno desde una perspectiva económica hasta hace poco.

Buena parte del desarrollo de software libre se realiza en contextos sostenibles donde el dinero tiene un rol secundario o inexistente. Unos lo denominan la economía del regalo. Otros la economía de la felicidad. A la mayoría ni le importa el nombre: se sienten a gusto con lo que hacen y eso les motiva a seguir trabajando. Es decir, que el modelo económico y la sostenibilidad vienen garantizados por causas emocionales y no puramente monetarias.

Vamos a intentar exponer los modelos económicos más representativos, teniendo presente que la economía y la sostenibilidad no es cuestión sólo de dinero sino también de emociones. No estamos hablando de modelos puros y unívocos, detrás de cualquier aplicación libre se pueden encontrar varias motivaciones y varios modelos en acción.


Modelo liberador

La sociedad está presa del software propietario y hay que liberarla, emanciparla. El software es conocimiento y tanto el software como el conocimiento deben ser libres y estar al alcance de cualquiera. Trabajar para conseguir estos objetivos a largo plazo es aliciente suficiente para muchos desarrolladores.

Cuánta energía ha invertido la Humanidad en empeños liberadores de este estilo a través de la política, el asociacionismo, el activismo, la fe...


Modelo artístico

Los desarrolladores se mueven por un impulso creativo y se sienten satisfechos cuando consiguen completar una obra concreta que partió de una idea abstracta. El dinero no les importa en absoluto y lo que quieren es que su entorno conozca su creación y reconozca sus méritos.

No sólo el Arte sino también la Ciencia le debe mucho a este modelo.


Modelo académico

Las universidades han sido focos clave de impulso del software libre. La academia tiene una larga tradición de apertura y difusión del conocimiento, así como de colaboración para la investigación, la experimentación, la innovación. Desde un punto de vista académico el software libre es una herramienta útil para la obtención de sus objetivos y también un objeto de estudio en sí.

La comunidad del software libre se ha visto beneficiada por el trabajo y resultados de proyectos de fin de carrera, doctorados, equipos de investigación, conferencias académicas y recursos varios destinados gracias a profesores y estudiantes implicados en la causa.


Modelo currículo

Perfil joven con cualidades y virtudes observa su entorno monótono y gris llegando a la conclusión de que el mejor currículo laboral que puede construirse pasa por participar activamente en proyectos de software libre, donde adquirirá experiencia, rodaje, contactos, dominio del inglés y muestras concretas de su trabajo que funcionan de verdad.

Bajo este modelo se mueven muchos impulsos egoístas que aciertan a combinarse con esfuerzos altruistas produciendo acciones que benefician a todos y a uno mismo.


Modelo solidario

Las barreras impuestas por el software propietario a través de sus precios y sistema de licencias despierta la sensibilidad de desarrolladores que encuentran un reto en publicar aplicaciones libres que sean útiles para quienes no pueden pagar sus equivalentes comerciales y se ven empujados a la pobreza tecnológica o el pirateo de software. Posiblemente las alternativas libres desarrolladas no se planteen tantas funcionalidades ni pompa como las opciones de pago, pero hacen casi todo lo que un usuario básico precisa de ellas.

El ámbito educativo y las alternativas a las utilidades shareware son dos filones donde este modelo cuaja con frecuencia.


Modelo hobby

Opción 1. Desarrolladores profesionales se ganan la vida produciendo software (generalmente propietario) en proyectos y empresas que no les acaban de llenar, por lo que por las noches y los fines de semana sacan a relucir su otro yo en proyectos libres donde pueden dar rienda suelta a sus pasiones.

Opción 2. Desarrolladores aficionados haciendo sus pinitos en lenguajes libres y accesibles como PHP o Python trabajan de cualquier cosa (o buscan trabajo) y por las noches y los fines de semana sacan a relucir su otro yo en etc, etc.


Modelo estandarizador

El software libre se rige por estándares abiertos consensuados públicamente y por tanto resulta útil cuando diversas organizaciones deben cooperar en proyectos conjuntos a gran escala, a largo plazo y sobre un terreno neutral.

El ejemplo más claro de este modelo es la propia Internet, cuya arquitectura básica depende principalmente de software libre para relacionar servidores con dominios, mostrar páginas web, hacer llegar correos electrónicos a su destino, etc. O dicho de otra forma: si usted ha utilizado Internet, ya es usuario de software libre.


Modelo proveedor de servicios

El más extendido en el ámbito empresarial. Un proyecto profesional llega a la conclusión de que se pueden ganar la vida ofreciendo servicios de consultoría, adaptación, soporte y formación alrededor de una sólida aplicación libre, o varias. A raíz de los encargos de los clientes van contribuyendo mejoras y nuevas funcionalidades a las aplicaciones en las que se especializan.

Este modelo está propiciando una dinámica de consolidación de las aplicaciones libres de referencia: los programas que son considerados útiles por usuarios y desarrolladores reciben de estos más testeo, ideas de mejora y contribuciones de código que revierten en un incremento de su utilidad, lo que hace que nuevos usuarios y desarrolladores los conozcan y se sumen a su proceso orgánico de desarrollo.


Modelo competitivo

Un grupo de desarrolladores generalmente organizados en una empresa llegan a la conclusión de que la mejor forma de abrirse un hueco en el mercado o de imponerse a su competencia pasa por la producción de software libre. En ocasiones el 100% de los desarrollos son libres y en ocasiones una versión libre es un subproducto de otra no libre más potente, que es la punta de lanza de la oferta de la empresa.

Por lo general estos desarrollos libres van acompañados de una oferta de servicios profesionales de consultoría, programación a medida, implantación de tecnología, formación... En estos casos el software liberado es la mejor carta de presentación de la empresa.

La competencia entre los gigantes de la industria del software genera aplicaciones de primera calidad bajo este modelo. Un ejemplo claro es el desarrollo del paquete ofimático libre OpenOffice.org patrocinado por Sun Microsystems para plantar cara a Microsoft y su MS Office.


Modelo reconversión

Variante del modelo competitivo. Una empresa de desarrollo de software propietario se acerca o llega a la quiebra, y para evitar la defunción del proyecto deciden darle un golpe de timón, liberar sus desarrollos y cambiar por completo su estrategia comercial.

Posiblemente la historia más característica de este modelo sea la del software de tratamiento de imagen tridimensional Blender [13] (http://www.blender3d.com/), desarrollado inicialmente como propietario por la empresa NaN y actualmente libre tras la fallida de ésta y su continuidad en la Blender Foundation, sin ánimo de lucro.

La ausencia o poca implantación de este modelo representa una gran pérdida económica y cultural. Miles de empresas informáticas clausuradas y desaparecidas enterraron u olvidaron bajo candado y licencias restrictivas el software que habían generado. Sólo con que lo hubieran abandonado con licencia abierta podría haber sido reutilizado y quizás reavivado por otros.


Modelo institucional

El creciente apoyo y adopción del software libre por parte de las administraciones públicas comporta el destino de recursos públicos a proyectos impulsados por estos organismos. Estos recursos se materializan en presupuesto para desarrollar proyectos internamente o sacarlos a concurso. La cuenta de la abuela que permite la aprobación de estos recursos tiene como referencia el presupuesto que las administraciones están destinando al pago de licencias de software propietario, y la posibilidad destinar ese dinero o mucho menos a encargar desarrollos personalizados basados en software libre. Una ventaja colateral de este cambio es que el dinero que antes salía del territorio con destino principalmente a empresas de Estados Unidos, ahora puede quedarse en el territorio contratando a trabajadores o empresas locales.

En España este modelo está cada vez más extendido, teniendo por ahora como principales referentes a las Juntas de Extremadura (con Linex) y Andalucía (con Guadalinex) por sus decididas apuestas con claro respaldo político.


Probablemente existan otros modelos sostenibles y seguramente nuevos modelos aparecerán. Esta revolución no ha hecho más que empezar.


    Sigue: GNU Linux, el sistema operativo