El ejercicio de la libertad

Una de las cosas que me cuesta un poco comprender, es que la libertad, siendo uno de los derechos más esenciales del ser humano, sea un concepto tan poco comprendido por el común de las personas, se le suele confundir con libertinaje y son pocos los que de hecho comprenden que la libertad se define por sus limites y no por su alcance, es decir, que la libertad se define para saber que cosas no se pueden hacer, al contrario de lo que piensa la mayoría, que se trata de hacer lo que uno quiera.

Esta confusión en la mente colectiva de alguna manera es un problema cuando se habla de software libre, porque cuando el usuario promedio (no me gusta el termino, para mi solo hay usuarios, solo que manejan la computadora a diferentes niveles) ve un programa, no piensa por lo general que este programa de por si, limita lo que puede hacer con la computadora, dado que el programa gobierna la maquina, y quien escribe el programa gobierna a este.

Nuestras computadoras están bajo el control de aquellas personas que escriben los programas, y nosotros no hacemos lo que queremos con la computadora, hacemos lo que el programa permite, de la forma en la que el programador estableció que se realizara. Claro, muchos dirían: pero es que lo que hace el programa es lo que quiero hacer y no se dan cuenta que lo que piensan que quieren hacer con la computadora, esta condicionado por lo que saben que se puede hacer con el programa.

La pregunta clave es, ¿como es el software libre diferente? ¿Acaso, a menos que se sepa programar no se esta en las mismas condiciones? Visto individualmente la respuesta es, si, no hay diferencia; para el individuo es tan restrictivo el programa privativo como el libre, ni siquiera aquellos que sabemos programar podemos ejercer esta libertad solos, la cantidad de programas que hacen funcionar una computadora y la diversidad de disciplinas requeridas para comprenderlos, hace imposible que incluso los programadores sepan que hace cada programa en la computadora.

Es mucho código fuente para leer, y la mayoría de los programadores por lo general no van más allá de la capa de usuario, por lo que el código fuente del kernel seguramente seria un gran misterio para muchos, esto sin mencionar todas las capas de software que hay entre el kernel y la capa de usuario. Nadie en su sano juicio va a estudiar todos y cada uno de los programas, porque la computadora es para usarla, no para comprender como funciona, salvo que se sea un fabricante o un desarrollador de software.

Entonces, ¿cual es la diferencia? ¿Como se hace ejercicio de la libertad usando software libre? La respuesta es, colectivamente. Se que no puedo estudiar todos los programas que hacen funcionar la computadora, pero un grupo de usuarios lo suficientemente grande, viendo distintas partes del programa y del sistema, si podemos estudiar todo el código en poco tiempo, por lo que se que las partes del programa que no he visto han sido vistas por otros usuarios, que al igual que yo corrigen y/o reportan errores. Por lo que puedo confiar en que el programa que estoy usando ha sido visto por muchos y probablemente no contenga características que puedan hacerme daño, como por ejemplo que me espíen.

¿Y por qué puedo confiar en esto? Porque existe una diferencia enorme en cuanto al llamémoslo mundo del software privativo, en el que cuando alguien dice que mi programa hace algo para sacar provecho del usuario, yo tan solo lo niego y no le muestro el código a nadie. En el mundo del software libre, se que cada línea de código que escriba va a ser leída por otros y el incluir funciones que busquen sacar provecho del usuario, solo puede traerme como consecuencia perder mi reputación como alguien en quien confiar en el momento que estas sean descubiertas por otros y que nadie nunca más haga uso de mis aportes.

Mientras que en el mundo del software privativo tengo cierta impunidad si intento hacer algo en contra del usuario, en el mundo del software libre puedo perderlo todo por intentarlo. ¿Esto quiere decir que todo el que escribe software privativo, lo hace con intenciones de aprovecharse del usuario? No, seguramente la mayoría de las casas desarrolladoras de software privativo no piensen en hacerlo, porque parte de su negocio es que el usuario confié en sus productos, y cualquier sospecha puede salirle cara. Pero sin poder ver el código, ¿como podemos asegurarlo?

El ejercicio de la libertad en el mundo del software libre se hace de manera colectiva, entre todos ejercemos las cuatro libertades que nos otorgan las licencias de software libre, incluso aquellos que no saben programar hacen aportes usando los programas, descubriendo errores y los reportándolos a los desarrolladores, no hay otra forma de hacerlo, individualmente ni el mejor de los programadores seria capaz de saber que hacen los cientos de programas que hacen funcionar su computadora.

Las casas desarrolladoras de software privativo nos dicen que no tenemos que preocuparnos de esto, que ellos se ocupan y que confiemos en ellos; los desarrolladores de software libre nos dicen que no tenemos porque creerles, podemos ver el código y asegurarnos que el programa hace lo que ellos dicen, y entre todos los usuarios nos aseguramos de que así es.

Esa es la libertad que nos ofrece el software libre y la forma de ejercerla, pero no tienes porque creerme, puedes asegurarte por ti mismo.

Publicado en Software libre | Etiquetado | 2 comentarios

¿Cuanto importa realmente la libertad de uso que proporcionan las licencias de software libre?

He decidido el día de hoy hacer una entrada de opinión, me había resistido a hacerlo porque la verdad es que la opinión de quien esto escribe vale lo mismo que puede valer la opinión de cualquiera, por lo que me había limitado a presentar hechos, dado que contra ellos nadie puede discutir. Sin embargo, muchas veces es necesario aproximarse a lo humano para poder comprender el verdadero impacto que algunas cosas pueden tener en nuestras vidas.

Una de las razones por las cuales es tan complejo el explicar la importancia del software libre, es que la mayoría de los usuarios no son programadores, por lo que se recurre constantemente a metáforas que le permita al usuario no programador hacerse una idea de lo que se esta hablando.

Probablemente, la metáfora más cercana a explicar las ventajas del software libre, es la de las recetas de cocina. Cocinar y programar tienen mucho en común, porque se sigue una serie de instrucciones en un orden preciso a fin de conseguir un resultado, y si se varían los pasos o se cambian, se obtiene algo completamente nuevo.

Lamentablemente cuando se habla de comida, la actitud de muchos comensales es parecida a la de una gran cantidad de usuarios frente al software: ¿Realmente importa si se sabe o no como ha sido preparada la torta? Yo lo que quiero es comerla. Son pocas las personas con necesidades especiales que le hagan preocuparse por la preparación de los alimentos, así como son pocos los usuarios que realmente tienen necesidades que le hagan preocuparse por el comportamiento de la computadora y el modo exacto en que hace las cosas.

Así como en forma general solo a quien cocina le importa la receta y el como se ejecutan los pasos para llegar al producto deseado, generalmente solo al programador le importa como la computadora ejecuta el programa de forma que el resultado sea el esperado. Entonces, ¿por qué ha de preocuparse el usuario no programador por como funcionan los programas? En todo caso igual se come la torta, sea que esta termine indigestandolo o no.

Hace unos años atrás, junto con un grupo de amigos me dedicaba a practicar ciclismo de montaña. No hay cerca del lugar en el que vivo muchos lugares donde se pueda practicar este deporte, así que recorrimos muchas veces los mismos caminos. Uno en particular pasaba junto a una boca de visita de una tubería proveniente de una represa relativamente cercana, que suministra agua potable a una zona de la ciudad en la que vivo. Esta instalación es custodiada por una persona -que no muchas veces logre ver en el lugar- y por un perro atado con una cadena suficientemente larga para alcanzar a cualquiera que intente acercarse. Con el tiempo aprendí cuanto podía acercarme al perro sin que este pudiese lastimarme, esa cadena me daba control sobre el perro.

Perro amarrado

Cuando comencé a usar software libre, hacia bastante que conocía de su existencia y ya había leído bastante como para saber de que se trataba, o al menos eso es lo que yo creía. Una de las primeras cosas que hice fue unirme a uno de los muchos foros de usuarios que existen -no porque necesitara ayuda, ya que a mi siempre me ha funcionado perfectamente GNU/Linux, así como todas las aplicaciones libres que utilizo- sino porque según entendía, el software libre es comunidad y colaboración, lo cual es verdad pero es solo unos de los aspectos de los muchos que conforman la idea del software libre.

La cosa es que en una de mis primeras intervenciones en el foro, me di cuenta de que no tenia muy claro aun de que iba esto del software libre. Por ello comencé a buscar más información, necesitaba encontrar respuesta a las preguntas: ¿Como puede un programa quitarle a alguien su libertad? y ¿de qué libertad estamos hablando exactamente?

De las respuestas a ambas preguntas ya he hablado bastante en las entradas anteriores, pero aun cuando contaba con esa información, seguía sin comprender el significado real de esto. Ciertamente, poder hacer uso de un programa con cualquier propósito te da absoluto control de tu informática, pero ¿qué es lo que esto tiene que ver con la libertad? Porque salvo que amarraran la computadora a mi tobillo cual grillete, no terminaba de comprender como perdía la libertad, ya que con software libre o sin el, todo aquel que se sienta frente a una computadora hace lo que quiere hacer -o eso cree-, la apaga y luego se va.

Pensando en estas cuestiones, un día me acorde de aquel perro y de como luchaba por morderme cada vez que pasaba a su lado, imagine que lo más duro para aquel animal, no era el ser incapaz de morderme, sino el no poder ir a donde quisiera estando en un lugar donde había tanto para explorar. Luego me pregunte que pasaría si el perro no estuviese consciente de la cadena, sino estuviese en ese lugar sino en el jardín de una casa con una cadena lo suficientemente larga para ir a cualquier lugar dentro del jardín; si el perro jamás intentase siquiera salir de allí, ¿estaría consciente de que esta amarrado? ¿Podría saber que no es libre?

Fue entonces cuando finalmente lo comprendí, el usuario de software privativo es como ese perro con la cadena suficientemente larga para moverse dentro de todo el jardín, que nunca siquiera se plantea que el programa que usa a diario pueda hacer otra cosa, no se da cuenta de que no es libre, porque hasta donde entiende es capaz de hacer en su computadora cualquier cosa que se proponga y solo aquellos que han intentado salir del jardín saben que están atrapados.

Para el usuario de software libre, aun cuando este no sepa programar, el panorama es completamente diferente, porque cuando necesite salir del jardín, bien puede aprender a programar o puede buscar a alguien que extienda la cadena un poco más para llegar hasta donde él lo requiere. Además el uso de software libre le garantiza que miles de ojos están viendo el código fuente de los programas que usa, y si este tuviese alguna función que pudiera dañarlo, alguien en algún momento la encontraría y el autor de esta sería desenmascarado frente a la comunidad, cosa que con el software privativo jamás pasaría.

Pero la importancia de la libertad de uso que se nos otorga a todos los usuarios de software libre, va más allá de este simple hecho. La libertad de uso permite que las personas que tienen el conocimiento y las habilidades técnicas sean capaces de crear cosas nuevas a partir de cosas que ya existen, con lo que la innovación se da muy rápidamente, generando a gran velocidad más beneficios para la sociedad de los que se pueden obtener mediante la creación de software privativo y la apropiación del conocimiento.

Es aquí donde radica la verdadera importancia y fuerza del software libre, en que cada persona que tenga la posibilidad de innovar lo haga, sin tener que preocuparse porque el conocimiento le pertenezca a otro.

Publicado en Reflexión | 3 comentarios

Ética, Software Libre y Modelos de Negocios

La tecnología ha estado presente en la sociedad humana prácticamente desde sus inicios, cuando los primeros homínidos hace más de 1000000 de años iniciaron la fabricación de herramientas de piedra, las cuales les proveyeron de ventajas que les abrieron las puertas a una mejor alimentación.

Desde entonces y hasta el día de hoy la tecnología ha estado estrechamente vinculada al desarrollo de la sociedad humana, siendo incluso uno de los factores que determina el rumbo que esta toma.

Dicho sea de paso, que al menos en mi país, el conductor de este vehículo no solo esta actuando sin ética, sino que esta incurriendo en una falta penada por las leyes

Es un hecho que la tecnología carece de carácter ético, es decir no existen tecnologías buenas y tecnologías malas, solo existen tecnologías, es el uso de estas las que entran en el campo de la ética, por ejemplo un vehículo automotor puede ser un efectivo medio de transporte o el medio para agredir a alguien.

Si bien por un lado nuestros sistemas penales establecen que cada individuo es responsable de actuar ajustado a las leyes, dejando el asunto ético en manos de cada quien, es necesario que como sociedad nos comprometamos a exigir el uso ético de las tecnologías por parte de aquellos quienes tienen acceso a su implementación, dadas las graves consecuencias que puede acarrear un uso irresponsable de las mismas. Acá un ejemplo de lo que puede ocurrir cuando en detrimento de la ética se toman decisiones irresponsables.

El profundo impacto que las Tecnologías de la Información están ejerciendo sobre la sociedad actual y las nuevas implicaciones éticas que estas nos plantean, nos obligan como sociedad a revisar con cuidado las formas en que estas serán y están siendo implementadas, estableciendo claramente que riesgos podemos permitirnos y cuales no.

Las tecnologías de la información están hoy en día estrechamente vinculadas a nuestros ritmos de vida de muy diversas maneras, producto de las nuevas exigencias presentadas por nuestra sociedad actual

El software libre surgió a raíz de la necesidad de un grupo de hackers a mantener el control de sus sistemas informáticos, dado el comportamiento que comenzaban a adoptar los fabricantes, al negarse a proporcionar el código fuente de las aplicaciones que incluían en sus equipos de computación, evitando así que estos realizasen las tareas requeridas por sus legítimos dueños. Esto que quizás nos parece normal hoy en día era algo completamente anómalo en la década de 1970.

Para entender el impacto de esto, muchos recurren a las analogías y muchas veces me ha tocado leer cosas como: “Imagina que no pudieses ver que debajo de la capota de tu coche”. La analogía se me hace insuficiente, porque no se trata solo de saber que hay debajo de la capota. Probablemente, la mejor explicación que he encontrado hasta el momento sea esta:

Un sector de nuestra sociedad -pequeño en realidad pero con gran poder mediático- se esfuerza en convencernos de que tenemos que decidir entre el modelo ético de desarrollo de software planteado por el movimiento del software libre y la toda industria del software, porque si es gratuito, ¿como se hace dinero?

En su obra Nuevos Modelos de Negocios basados en Software Libre, Jose Ramón Díaz nos explica que:

El mercado del software está muy diversificado. Existen numerosos submercados, puesto que podríamos hablar de software de sistemas operativos, de software de gestión de empresas, de bases de datos, de aplicaciones ofimáticas, de infografía, de diseño arquitectónico,… así hasta prácticamente los cientos y cientos de tipos de aplicaciones que se desarrollan. Hoy en día la práctica totalidad de los sectores industriales existentes cuentan con la ayuda de un software específico para sus labores de gestión, producción, distribución,… para cualquier área de la organización.

Es un hecho que la mayor parte del software que se desarrolla a nivel mundial, es producto del trabajo de casas de software más bien pequeñas pero altamente especializadas a fin de resolver problemas específicos, donde el software se comercializa como parte de un servicio, y donde en el fondo que el software sea libre o privativo no marca mayor diferencia, salvo por el hecho de que mediante el uso de software privativo te vez encadenado a la empresa que lo suministra, mientras hagas uso de esa solución.

De acuerdo a Francesc Miralles, citado por Jose Ramón Díaz en la misma obra de la que se hizo mención anteriormente, existen diversas líneas de negocio que se desarrollan a partir del uso de software libre, entre las que se mencionan:

  1. Empresas que distribuyan el software libre: Aunque el software libre es por definición también gratuito y puede ser conseguido de diversas maneras, una empresa puede crear su propia versión y ofrecer servicios añadidos. El ejemplo más claro son las distribuciones de Linux. Este sistema operativo requiere una compleja instalación, y numerosas descargas desde Internet de sus partes. Existen empresas que han creado su propia versión facilitando la instalación y administración de Linux, ofreciendo así prestaciones adicionales con las que hacen negocio. La empresa RedHat es un ejemplo de esto.
    Generalmente, este tipo de empresas también ofrece servicios de formación o consultoría, pues cuenta con personal cualificado.
  2. Empresas que den soporte, consultoría o formación al software libre: Obviamente el software libre también necesita de profesional cualificado y de un soporte adecuado que responda ante las necesidades de los clientes. Las empresas distribuidoras son las que dominan el mercado de la consultoría y asesoramiento o formación, pero también grandes empresas como IBM o Sun han ampliado sus departamentos de consultoría con estas tareas y software.
    A niveles locales están surgiendo un importante número de empresas donde equipos bien formados en tecnologías de código abierto dan servicios y realizan desarrollos a medida de los clientes.
  3. Empresas que se apoyen en programas de SCA: Por ejemplo, determinadas empresas renuevan sus productos para que funcionen sobre plataformas de código abierto para independizarse de empresas proveedoras. Además de esta manera pueden aumentar sus márgenes, y competir en aquel mercado dónde sus posiciones son más ventajosas. Por ejemplo, IBM ha apostado fuertemente por el software libre, ha invertido más de 1.000 millones de dólares en la migración de sus aplicaciones y la formación de sus técnicos, contando en la actualidad con más de 5.000 clientes sobre plataforma Linux.
    Otras empresas, como SAP y Oracle han adaptado también sus aplicaciones para Linux, de manera que también intentar fomentar la competencia contra Microsoft.
    E incluso empresas proveedoras de hardware como Hewlett-Packard o Dell Computer han establecido alianzas con distribuidoras de Linux para ofrecer soluciones integrales a sus clientes.
  4. Empresas que utilizan programas SCA como usuarios finales, pero que pueden en cualquier momento aportar modificaciones a la comunidad.Estas empresas no generan ingresos por el software libre, pero lo utilizan porque les aporta un mayor valor añadido, o bien por que aumenta sus márgenes operativos. También podrían en cualquier momento aportar un valor añadido al software libre, realizando las modificaciones necesarias para ellas en el software y posteriormente compartiéndolas con la comunidad.
  5. Empresas de venta de accesorios para el software libre: Todo este movimiento ha generado un negocio satélite de venta de libros, CDs o documentación.

Queda claro que no solo es posible hacer dinero con el software libre, existen líneas claras por las cuales desarrollar modelos de negocios basados en su uso y empresas que ya llevan a cabo exitosos modelos de negocios basados en el uso de software libre.

Cuando alguien asegura que no es posible hacer dinero con el software libre, lo que realmente esta diciendo es “no puedo hacer dinero de la manera en que suelo hacerlo”, es evidente que un modelo de negocios basado en el software como producto no es viable dentro del marco del software libre.

Muchos abogan por la convivencia de los dos modelos de negocios, lo cual dado lo amplio de la industria del software no solo es viable, desde hace muchos años es un hecho. Hoy podemos ver como el uso de tecnologías libres es mayor cada día y como el concepto de interoperatibilidad va ganando mayor importancia. Quizás algún día la balanza se incline en favor del software libre.

No podemos perder de vista bajo el control de quien esta nuestra computadora

Es necesario que los usuarios contemos con ideas claras de que debemos esperar de ambos modelos, y que sea el usuario quien decida que ha de usar, sin embargo es necesario que no perdamos de vista la ética y su importancia, dado que las consecuencias de usar irresponsablemente las tecnologías de la información pueden ser enormes. Por supuesto, el que una empresa desarrolle software privativo no implica que la misma no tenga ética, del mismo modo que no necesariamente una empresa que proporciona servicios basados en software libre en consecuencia actúa bajo criterios éticos. No podemos perder de vista jamás, bajo el control de quien están nuestros sistemas informáticos.

Publicado en Reflexión, Software libre | Deja un comentario

Sobre los derechos de autor

A diferencia de lo que muchos piensan «¿o tal vez debería decir, de lo que nos han hecho pensar?» el objetivo de las leyes de derechos de autor no es proporcionar mecanismos al creador de una obra que le permitan la explotación comercial de esta, sino el establecer mecanismos legales que le permitan al estado garantizar la difusión del conocimiento al publico en general.

El origen de las leyes de derechos de autor se remontan al siglo XVIII con la entrada en vigencia en el Reino Unido del estatuto de la Reina Ana en 1710; este fue el primer texto legal escrito a fin de reconocer al autor de una obra literaria la propiedad intelectual sobre la misma. El objetivo de este era corregir los problemas derivados de los privilegios exclusivos de impresión y venta de libros que a fin de incentivar la reproducción de obras literarias fueron otorgados a los editores por la autoridad gubernamental y que finalmente fueron utilizados por estos para explotar a los autores.

En la actualidad, las leyes de derechos de autor otorgan al dueño de la propiedad intelectual de una obra, todo el control sobre los términos bajo los cuales esta será distribuida y la forma en que será explotada comercialmente, esto por un periodo de tiempo que de acuerdo a la legislación de cada país podría llegar hasta 70 años contados a partir de la muerte del autor, tiempo después del cual la obra pasa al dominio publico. Nótese que se ha diferenciado al propietario de los derechos de autor, del autor de la  obra, esto porque necesariamente no tiene que tratarse de la misma persona.

Una obra que ha pasado al dominio publico puede ser utilizada por cualquiera para la creación de trabajos derivados y la creación de nuevo conocimiento, lo cual es el verdadero objetivo de las leyes que protegen la propiedad intelectual, garantizar que el conocimiento humano quede en manos de la sociedad, en lugar de que un particular se apropie de este por tiempo indefinido.

En el siguiente vídeo, producido por la Global consumer network on, se plantea la necesidad de implementar cambios en las leyes de derechos de autor para que estas puedan cumplir nuevamente su objetivo original.

Aunque la verdad es que este vídeo no esta directamente relacionado con el software libre o la libertad de uso de los programas de computadora «que es el tema que se trata en este blog», si presenta una visión más cercana al mal llamado “usuario medio” de como el uso abusivo que determinados sectores hacen de las leyes de derechos de autor afectan de manera directa la forma en que accedemos al conocimiento; más aun, afectan inclusive la creación de nuevo conocimiento.

Los derechos de autor son utilizados en el mundo del software privativo a fin de tener control sobre el usuario, al principio se trataba de evitar que estos compartieran el software de forma que todos se viesen obligados a adquirir una licencia para su uso; en la actualidad usan el mito del usuario medio a fin de justificar la venta de computadoras diseñadas para mantener control absoluto sobre estas, bajo el argumento de que estas cumplen mejor que bien con los requerimientos informáticos del usuario medio y por medio de campañas publicitarias bombardean a este con mensajes que le convencen de que lo hacen porque desean hacer su vida más fácil.

Es así como se puede encontrar personas que no poseen el conocimiento técnico requerido para estimar el potencial de un equipo, asegurando que en todo caso el equipo no serviría para nada más, y se logra que el usuario medio haga lo que se supone debe hacer, comprar nuevos equipos y con estos nuevas licencias de software.

Publicado en Reflexión | 8 comentarios

¿Software propietario o privativo?

Muchas han sido las ocasiones en que alguien me ha llamado la atención por el uso del término software privativo, indicándome que es mejor usar en su lugar el término software propietario, el cual carece de connotación negativa. Ha estas personas les he indicado que el término privativo no es negativo, y que solo indica que las licencias de estos programas nos privan de las libertades esenciales de uso que debería disfrutar todo usuario y que el uso de software libre garantiza.

Por otro lado, el uso del término software propietario supone un problema; el hablar de software propietario para referirnos a la contra parte del software libre crea la idea de que los programas libres no tienen dueños lo cual es del todo incorrecto, ya que estos no solo tienen dueños, sino que están publicados bajo licencias de software amparadas por las mismas leyes de derechos de autor que las licencias de los programas privativos, como ya se había indicado en la entrada Licencias de Software Libre.

Es necesario aclarar algo, en el idioma ingles el uso del término proprietary software como contra parte del término free software es correcto, porque en ingles el uso de la palabra proprietary como adjetivo, no indica propiedad sobre algo, sino que el acceso a ese algo esta restringido, por lo tanto el término proprietary software indica que el acceso al programa esta restringido, mientras que el término free software indica que el acceso al programa es libre.

Pero en español, software propietario indica que el programa tiene dueños y es entonces un término que puede usarse indistintamente tanto para hablar de software privativo como para hablar de software libre, por lo que no supone en realidad algo que los diferencie. Sin embargo, el término es usado intencionalmente para referirse a programas privativos por algunas personas, debido a que si el software libre no tiene dueños, no se trata entonces de un producto comercial, ya que lo que no es de nadie no es objeto de comercialización y lo peor, al no tener dueños su desarrollo debe estar en mano de aficionados. Aclaro que esta es la práctica de algunas personas, y que no todo el que habla de software propietario para hablar de software privativo lo hace con estas intenciones.

Si el uso del término software privativo puede parecer negativo a alguien, es solo por el hecho de que ha nadie le gusta que le priven de libertades, menos aun cuando se ha pagado para poder tener acceso a aquello que nos las quitan, sin embargo esa es la realidad, al usuario de software privativo se le arrebata su libertad y se le cobra por ello.

Publicado en Reflexión, Software libre | 16 comentarios

Del Software Libre y la importancia de desarrollar aplicaciones bajo criterios éticos

Anteriormente hablamos sobre la diferencia entre software libre y código abierto, estableciendo que estas diferencias no van más allá del plano ideológico, siendo el termino código abierto solo otra forma de referirse al software libre, sin embargo se dejo pendiente el discutir sobre las implicaciones de usar uno u otro.

El problema cuando se habla de la libertad, es que la mayoría de nosotros da por hecho que se es libre por derecho y no se considera posible que de hecho la libertad es algo que puede perderse; hace tanto tiempo que en los países cuyos ciudadanos son libres el día de hoy, se lucho y se pago con sangre y vidas esa libertad, que se ha borrado de la memoria colectiva la necesidad de vigilar constantemente que nadie haga algo para arrebatárnosla y cuando alguien dice algo sobre esto, es tomado por paranoico. Por otro lado, cuando de software se trata, los desarrolladores de aplicaciones privativas han llevado a cabo un esfuerzo enorme por convencernos de que una computadora es algo así como una licuadora o una lavadora, lo que hace más difícil para muchos comprender como es que un electrodoméstico que de hecho no es capaz de retener a nadie de forma alguna pueda vulnerar la libertad de alguien; bien, recordemos que cuando hablamos de software libre, estamos hablando de una libertad muy especifica, la libertad del individuo como usuario de computadoras, y que en adelante denominaremos la “libertad del usuario”, o también, “libertad de uso”.

Cuando un usuario se encuentra frente a la computadora realizando una actividad X, por lo general esta convencido de que la computadora esta haciendo lo que él quiere que haga; Federico Heinz nos advierte al respecto en su obra “Monopolios artificiales sobre bienes intangibles” que

…la computadora no obedece al usuario, porque no tiene la más remota sospecha de qué es lo que el usuario le ordena, ni siquiera sabe si el usuario está allí. La computadora obedece instrucciones ciegamente, sí, pero no las del usuario, sino las del autor del programa. Es éste el que determina qué debe hacer la computadora en respuesta a cada “orden” del usuario. Cuando el autor comete un error en la confección del programa, u omite alguna función que el usuario necesita, la computadora produce resultados inesperados, o es incapaz de llevar a cabo la tarea.

En principio, esto otorga al autor del programa un gran poder de control sobre el usuario, ya que puede escribir su programa de tal forma que imponga límites arbitrarios a lo que el usuario puede hacer, o incluir funciones ocultas, dañinas a los intereses del usuario.

O en otras palabras, es el programador y no el usuario quien tiene el control sobre lo que la computadora hace, siendo el programador entonces quien hace ejercicio de la libertad de uso sobre un equipo que es propiedad del usuario y de forma indirecta, ejerciendo control sobre este. Esto es cierto, bien sea que el usuario use software libre o use software privativo.

Ante esto cabe preguntarse, ¿qué importancia tiene entonces el uso de software libre, si para quien solo se dedica a usar la computadora esto no parece hacer alguna diferencia? Si hay una diferencia, y se trata de una grande, o mejor dicho algunas grandes diferencias.

Dejando de lado el tema del uso sin autorización de copias de software privativo o la mal llamada piratería informática (es pirata aquel que ataca o secuestra naves, y para ello no se requiere el uso computadoras), para hacer uso de un programa publicado bajo una licencia de software privativo, el usuario es obligado en primer lugar a aceptar un contrato de adhesión, en el cual se compromete a hacer uso del software bajo los términos y restricciones establecidas unilateralmente por el dueño de los derechos de autor (que no necesariamente es quien escribió el programa), que entre otras cosas obliga al usuario a asumir el compromiso de no distribuir copias del programa y a renunciar a la posibilidad de estudiar como funcionan los programas para corregir errores que puedan afectar el funcionamiento del equipo, o añadir características que le permitan hacer más productiva su computadora.

La principal y más importante consecuencia de aceptar los términos de una licencia de software privativo desde el punto de vista práctico, aunque sea en cierta medida la que menos pueda llegar a preocupar a la mayoría de los usuarios, es que no se tiene ningún control sobre lo que la computadora hace o como lo hace, y si el programa tiene algún error, el usuario no tiene más alternativa que esperar a que el problema sea corregido si es que alguna vez se corrige. Muchas son las ocasiones en que un usuario que se pone en contacto con una empresa desarrolladora de software privativo por algún error en algún programa, recibe como respuesta que el problema ya fue corregido en la nueva versión, así que solo debe actualizar y por supuesto, pagar por la nueva licencia de software, o peor aun, le indican que ya se conoce el error y que se encuentran trabajando en su corrección, cosa que puede o no ser cierta. La razón por la que las compañías que desarrollan software privativo son tan indiferentes a los problemas que el usuario pueda tener con sus programas, es que al contrario de lo que muchos usuarios piensan, los programas privativos incluyen clausulas en sus licencias que estipulan que el software se distribuye tal y como esta, y sin ningún tipo de garantía.

Es necesario dejar claro, que las licencias de software libre incluyen también clausulas similares, sin embargo, un usuario de software libre que se vea en una situación similar, puede que reporte el error a los desarrolladores y podría darse el caso en que jamás es corregido, bien porque el problema puede resolverse si el usuario toma determinadas medidas, o porque el programa tenga errores más importantes de los que el desarrollador prefiere ocuparse, pero el usuario siempre tendrá la alternativa de estudiar el programa y corregir el problema por si mismo, o pagar a un programador para que lo haga por él, porque si bien como se dijo, el usuario de software libre también se encuentra a la merced del programador, a diferencia del usuario de software privativo, este puede en cualquier momento tomar el control de su computadora.

Por otro lado, desde el punto de vista moral, el prohibir a los usuarios compartir los programas termina por convertirse en un problema social y ético, dado que al usuario se le obliga a decidir entre cumplir con un contrato entre su persona y una compañía, o ser solidario con su vecino, y sin importar la decisión que se tome, se encontrara incurriendo en una falta; porque si el usuario decide infringir el contrato y ayudar a su vecino proporcionándole una copia del programa, entonces ha infringido la ley y no puede ser bueno una sociedad en la que sus integrantes piensan que hay ocasiones en que las leyes se pueden romper, y si por el contrario, el usuario decide cumplir con el contrato, entonces la ley le esta negando una de las cualidades más importantes del ser humano, el ser solidario con sus semejantes, y esto tampoco puede ser bueno. Por supuesto, si se debe elegir entre dos males, lo mejor es elegir el mal menor, y ayudar a tu vecino; pero sin lugar a dudas lo mejor, es no tener que elegir.

A las grandes empresas les gusta más el termino código abierto, porque mantiene al margen este asunto; ellos saben que en la misma medida en que el usuario este consciente de las implicaciones éticas intrínsecas al uso de programas privativos, tendrán que asumir una mayor responsabilidad en estos temas. Es por ello que invierten tanto tiempo y dinero en mantener a la mayor parte de la población de usuarios convencida de que estos temas no son relevantes y que la única forma de disfrutar de la tecnología tal y como la conocemos hoy, es permitirles tener el control sobre esta, y por ende de sus usuarios. Lamentablemente, muchos desarrolladores de software libre les siguen el juego por la comodidad de acceder a las soluciones que estos proporcionan, y por tener mejores oportunidades de negocios con las grandes compañías y no es que tenga algo en contra de que alguien haga mucho dinero con el software libre, estoy en contra de que para ello socaven la libertad del usuario.

Ya para terminar, es claro que desde la perspectiva del usuario que solo se dedica a usar la computadora, no existe mayor diferencia entre usar software libre o usar software privativo, al menos no más allá del hecho de que si decide compartir los programas, en el primer caso esta autorizado para hacerlo, mientras que en el segundo estaría eligiendo entre el menor de dos males. Así que para este, se trata de decidir en manos de quien esta poniendo su computadora para que tenga el control de uno de los muchos aspectos de su vida, y si bien aun con el software libre algunos se dan a la tarea de mantener al usuario al margen del tema ético hablando de código abierto en su lugar y restando importancia a la libertad del usuario, es muy poco probable que una aplicación de software libre tenga funciones ocultas que perjudiquen al usuario, dado que muchos tendrán acceso al código y más temprano que tarde alguien lo pondrá al descubierto, mientras que con el software privativo, un desarrollador que haga esto tiene todas las de ganar.

Publicado en Reflexión, Software libre | 6 comentarios

Free Software vs Open Source

Frecuentemente me encuentro con comentarios de algunos usuarios de software libre del tipo: “este programa es software libre, pero este otro en cambio es código abierto”, lo cual denota una clara confusión respecto a ambos conceptos. En la primera entrada realizada en este blog, se hizo un esfuerzo por definir que es software libre y cuales son los alcances de la libertad a la que este nos da acceso; esta definición fue establecida por Richard Stallman, fundador del Movimiento del Software Libre en la década de 1980, sin embargo para 1998 no todos los miembros de la comunidad del software libre se sentían cómodos con esta definición, dado que pensaban que el enarbolar la bandera de la ética por encima de todas las cosas era un obstáculo para hacer del software libre un producto comercial en el que se interesaran las grandes empresas, por ello se separan ideológicamente del movimiento del software libre y comienzan a hacer uso del termino alternativo open source.

Al poco tiempo fue fundada la Open Source Initiative, y crearon una definición propia de las características que debe cumplir una licencia de software para que un programa sea considerado como código abierto, esta definición, la cual me tome la libertad de traducir al castellano (acá el texto original en ingles), indica que un programa es codigo abierto si cumple con los siguientes criterios:

  1. Libre redistribución: La licencia no debe restringir a nadie el vender o entregar el software como un componente de una distribución mayor que contiene programas de diferentes fuentes. La licencia no debe estipular el pago de regalías u otras comisiones para dicha venta.
  2. Código fuente: El programa debe incluir el código fuente, y se debe permitir su distribución en forma de código fuente, así como compilado. Cuando este sea distribuido sin el código fuente, debe existir un medio suficientemente publicitado de obtener el código fuente, preferiblemente por no más del costo razonable de reproducción, la descarga a través de Internet debe estar libre de cargo. El código fuente debe estar preferiblemente en la forma en que un programador  pueda modificar el programa. Código fuente deliberadamente ofuscado no está permitido. Las formas intermedias como la salida de un preprocesador o traductor no están permitidos.
  3. Trabajos derivados: La licencia debe permitir realizar modificaciones y trabajos derivados, así como la distribución de estas bajo los mismo términos de la licencia original.
  4. Integridad del código fuente del autor: La licencia puede restringir la distribución de código fuente modificado solo si la misma permite la distribución de archivos de revisión (patch files) a fin de modificar el programa durante la compilación. La licencia debe permitir explícitamente la distribución de software a partir de código fuente modificado. La licencia puede especificar que los trabajos derivados lleven un nombre o número de versión diferentes al del software original.
  5. No discriminar a personas o grupos: La licencia no debe discriminar a cualquier persona o grupo de personas.
  6. No discriminar campos de actividad: La licencia no debe restringir a nadie el uso del programa en campos de actividad específicos. Por ejemplo, no se puede restringir el uso del programa en un negocio, o que sea usado para investigación genética.
  7. Distribución de la licencia: Los derechos asociados al programa deben aplicar para todos aquellos a quienes se redistribuya el programa, sin necesidad de pedir una licencia adicional para estas partes.
  8. La licencia no debe ser especifica a un producto: Los derechos asociados al programa no deben depender de que este forme parte de una distribución de software particular. Si el programa es extraído de esa distribución y usado o distribuido dentro de los términos de la licencia del programa, todas las partes a las que el programa se redistribuya deben tener los mismos derechos concedidos con la distribución de software original.
  9. La licencia no debe restringir otro software: La licencia no debe imponer restricciones sobre otro software que se distribuye junto con el software licenciado. Por ejemplo, la licencia no debe insistir en que todos los demás programas distribuidos en el mismo medio deben ser software de código abierto.
  10. La licencia debe ser tecnológicamente neutral: Ninguna disposición de la licencia puede basarse en una tecnología o estilo de interfaz.

Es sencillo observar que ninguno de estos diez criterios entra en conflicto con las cuatro libertades que definen a un programa libre, por lo tanto, cualquier programa que pueda ser considerado de código abierto puede a su vez ser considerado software libre. De hecho, Linus Torvalds, quien es el creador del núcleo Linux además de uno de los miembros fundadores de la Open Source Initiative, publica su núcleo bajo la licencia GPLv2, de la cual Richard Stallman es autor.

Sin embargo, si una cosa si queda clara al leer la definición de open source, es que se trata de un enfoque desde la perspectiva del desarrollador del software, en el que más que criterios se establece la forma en que un programa a de ser distribuido, si es que se desea que este sea código abierto, mientras que por el otro lado, en el concepto de software libre se hace hincapié en el respeto a las libertades que el usuario del programa debe tener. ¿Existe realmente alguna diferencia importante en ambos enfoques? ¿Existe una ventaja real de uno respecto al otro? En la próxima entrega intentare dar respuesta a estas cuestiones.

Publicado en Software libre | 1 comentario