martes, 12 de julio de 2016

Software libre, hoy más importante que nunca


FSF Logo
Es un tema que está bastante trillado, pero que sigue sin entenderse completamente. Es como el funcionamiento de los punteros, muchos programadores saben usarlo, y con el paso del tiempo siguen aprendiendo cosas sobre ellos y puliendo su conocimiento. Con el Software libre ocurre lo mismo, voy a intentar arrojar un poco de luz sobre el tema. AVISO: Esta entrada va a mi rollo, puede no coincidir totalmente con la postura de la FSF u otros seguidores del software libre.

El llamado internet de las cosas, es....., el software está en todos lados, en pequeñas piezas de hardware que pueblan nuestra casa. Hasta que no llegó GNU + Kernel de Linux, no había ningún sistema operativo libre, todos eran privativos. Un S.O libre permitió el desarrollo de una gran comunidad como es la actual. El ecosistema se dividió en muchas distros distintas, algunas recomendados por la FSF por estas libre de programar y drivers privativos, y otras que no. Muy pocas son las que lo cumplen, y a veces se sacrifican valores para mejorar la experiencia del usuario, comprensible pero no es lo más adecuado.

Un problema habitual para los que juegan en GNU/Linux, es que los drivers gráficos más potentes son privativos, y las alternativas libres, que sacan funcionalidad gracias a la ingeniería inversa del hardware, los usuarios se ven obligados a elegir entre potencia y rendimiento, o ética, y muchas veces pierde la ética. Hay que valorar la libertad, y comenzar a exigir standares abiertos, APIs abiertos a hardware y programas libres para que cualquiera pueda mejorarlo y utilizarlo, en su máximo potencial, sin depender de una empresa o grupo.

Describo a continuación las principales premisas que infiero de las charlas y documentos que hay sobre el software libre.
  • La premisa cero es, compartir es bueno, compartir debe ser legal, una ley que lo prohibe es antisocial y carece de valor ético. Pero ser libre implica mucho más, como vamos a ver. No tiene que ver con canciones o peliculas, deben ser compartibles y libres, pero no tienen porque ser gratis. Sin DRM, ni otras limitaciones que te impiden utilizarlo, obviamente.
  • La primera premisa es mantener las 4 libertades de los usuarios, la posibilidad de usar, estudiar, distribuir, y adaptar el código que ejecutes. No estás obligado a ello, pero tienes que tener la posibilidad.
  • La segunda premisa es respetar las licencias, nombra a los autores, mezcla software con licencias compatibles, no te apropies del trabajo que no es tuyo, haz lo que debes si usas software libre, etc.
  • La tercera premisa es exigir privacidad, aunque no tengas nada que ocultar, las empresas, gobiernos, y otras personas no pueden monetizar o aprovechar tu información privada. Empresas y webs se dedican a hacerlo, como whatsup, facebook, instagram, entre otras. Si las usas, hazlo con precaución, y si navegas, usa extensiones como No-script, libreJS, ghostery, usa redes tor, etc.
  • La cuarta premisa es, intenta no usar software privativo. No sabes lo que hace, no puedes saber que realmente hace lo que dice, puede tomar datos sobre ti sin decirtelo, puede espiarte, no puedes adaptarlo a tus necesidades... Hoy en día es casi imposible, pero es importante intentarlo. Yo fallo muchas veces en este punto, y espero mejorarlo.
  • La quinta premisa es, software libre no es software gratuito. Puedes vender tu copia, o vender una copia que consigas, siempre que la sigas distribuyendo como software libre que respete las libertades del usuario. De esta forma nadie queda atado al autor original si se sigue respetando la licencia, y podrás adaptar el código a tus necesidades, resolver bugs, mejorarlo y venderlo, etc. Este punto tiene muchos matices, dedica unas horas a leerte el FAQ y las licencias. Pagar es un detalle pequeño respecto a si respeta o no tu libertad, esto último es más importante.
  • La sexta premisa es, el mundo no cambia de la noche a la mañana, día a día puedes desarrollar software libre, participar en proyectos, instruir, quejarte a las empresas que pretenden que ejecutes código sin verlo, etc. Es dificil llevar a cambio el cambio pero el esfuerzo merece la pena.
  • La séptima presima, por mucho que me duela, es que si usas software privativo, eres un ejemplo de alguien que no está dispuesto a hacer un esfuerzo en favor de su libertad. A día de hoy, no existen alternativas libres tan buenas y eficientes como algunos programar privativos. Hay que comenzar a cambiar, yo mismo uso para jugar software privativo, a veces en mis trabajos no he tenido más remedio que usarlo, es un aspecto a mejorar por cada uno de nosotros.
  • Otra premisa importante es, que se deben aplicar las anteriores de forma legítima. Obligar al usuario a hacer ingenieria inversa para modificar el comportamiento del código NO es legitimo, hay que dar el código fuente e instrucciones razonables para hacerlo. En la práctica, se tiene que recurrir a estudiar el funcionamiento del software privativo, con ingeniería inversa, para poder desarrollar software libre. Es más costoso, pero es lo justo, es un buen trabajo muy demandado, y desde luego, legal. Lo ilegal debería ser no facilitar especificaciones para poder hacer tu propio software con la comunidad.
Algunas preguntas que puedes hacerte:
  •  ¿Qué puedo hacer yo? Puedes colaborar, estudiar, ir adaptandote a estas premisas poco a poco e instruir a los demás de forma no agresiva. Es un tema complejo que conlleva aceptar una ética, y conseguir el cambio poco a poco. Es más fácil dejar de lado el tema, pero considera lo importante que es esto.
  • ¿Es necesario usar licencias en mi código? Por supuesto que si, cuesta algo de trabajo leer sobre ellas y elegirlas, pero usar GPL o cualquier otra licencia libre, evitará que empresas puedan legalmente apropiarse de tu trabajo, contribuiras al desarrollo de la comunidad, y conseguiras que la gente pueda aprovechar tu trabajo para hacer obras derivadas.
  • ¿Quien tiene el control de lo que hace mi ordenador, el programa, o el programador/usuario? El software libre hace que tengas TU el control sobre el programa. Si no puedes verlo, no puedes estar seguro de que hace lo que te dicen que hace.
  • ¿El software en si mismo es bueno o malo? Obviamente no es malo, dependerá de como se use y como se puede utilizar, que se puede hacer con él, etc. El creador y el usuario son los que pueden usarlo para el bien o para el mal.
  • ¿El software libre implica que tenga que leer y comprender todo el software que utilizo? Obviamente no, es un problema inabordable, pero la comunidad es grande, y hay organismos que lo vigilan, si detectas algo raro, tu mismo puedes leerlo, hay muchos métodos a parte de auditar el código para evitar leerlo todo por ti mismo, no estás solo.
  • ¿Por qué llamarlo GNU/Linux y no solo Linux? El software libre empezó con con GNU, aportó gran cantidad de código, la ideología, etc. En su momento necesitaba un kernel donde ejecutar todo el código, un kernel que fuera de software libre. En un momento dado, Linus Torvalds licenció como software libre el kernel de Linux, y juntos, GNU/Linux, se convirtió en lo que es ahora.
  • ¿Sabías que la / de GNU/Linux es para que NO SE MUERDAN? Parrafo 2. Gracias por el aviso Iñaki.
  • ¿Los no programadores pueden colaborar? Por supuesto que si, alguien puede dar ideas, reportar bugs, y ayudar a los programadores aunque no lo haga directamente, participando en las decisiones, o incluso contratando a alguien que desarrolle lo que necesita. El que quiera colaborar es libre de hacerlo de cualquier manera.
  • ¿Existe diferencia entre código abierto y código libre? Si, hay una gran diferencia, el movimiento que representa la FSF no sólo busca poder leer el código, sino en cumplir con las 4 libertades, para modificarlo, compartirlo, etc. Por eso es importante que siempre se respeten estas libertades.
  • ¿Tiene un desarrollador la obligación de compartir el código? Obviamente no, tienes esa libertad pero no tienes porque ejercerla. Si te cansas de desarrollar un código y lo compartes, puedes dejar de mejorarlo, y otros usuarios podrán hacerlo o no, los usuarios no van a estar atados a ti por siempre como sucede en el software privativo, pero si mejoras un código para ti mismo o tu empresa, y no quieres compartirlo con la competencia, siempre que no distribuyas el binario, no tienes porque compartir el código de esas mejoras.
  • ¿Me puedo fiar del software como servicio? Si una actividad puedes ejecutarlo tu mismo, en local, siempre va a ser mejor que confiar en sitios que ejecuten el código de lo que tu haces, para poder ser libre. No todo se puede ejecutar en local, para comunicarte, necesitas hacerlo con otros, pero existen mecanismos para cercionarte con quien hablas, si hay terceros escuchando la comunicación, etc. Utiliza siempre Https, ssh, y otros cifrados para impedir que perjudiquen tu libertad.
  • ¿Debo desconfiar de todo lo que sea Smart? Como ya hemos dicho antes, cada vez más hardware controla nuestra vida, termostatos inteligentes, contadores de luz y gas que monitorizan datos, móviles con GPS y triangulación que te localizan exactamente (sino claro no funcionarían los telefonos), etc. Esta información es muy valiosa para las empresas, para facturar la luz basta con 1 lectura al mes, no cada segundo, con lo que se puede averiguar y/o aproximar patrones de consumo, cuanta gente hay... Desconfia de todo lo que no puedas auditar, ¿Imposible? Improbable más bien, complicado, pero toma las precauciones necesarias.
  • ¿Debe ser la educación sobre software libre? Por supuesto que si, muchas escuelas y universidades usan licencias de windows, packs ofimáticos de pago por licencia, software privativo en las prácticas que te obligan a usarlo para aprobar. Esto debe cambiar, y debe hacerse poco a poco. Debería ser ilegal por ser anticompetitivo, y antieducativo, porque no puedes ver como se hacen las cosas y te obligan a pagar por algo que te quita libertad. Por inercia social la universidad forma usando software privativo, porque se usa en el mundo laboral, y vicerversa. Lo ideal, y a lo que tenemos que ir, es a una sociedad ética donde cada uno se forme con software libre, y si se quiere, en una empresa, te formen y paguen por usar software privativo. No es lo ideal, pero no se puede obligar a que otros no lo hagan, esto iría en contra de la libertad que se busca defender. Tienes más información para la educación en este post.
  • ¿Puedo poner una licencia de explotación distinta a la GPL durante un tiempo y luego licenciar el código como GPL? Si eres dueño del código, puedes hacer lo que quieras. Esto incluye liberar el código con distintas licencias en distintos momentos, así que nada impediría que tengas software propietario, tuyo, y luego lo liberes. Tengo mis dudas, si sería posible aplicar a la GPL un tiempo de explotación donde no se deje compatir durante un periodo de tiempo (pongamos 3 años), para permitir la explotación comercial y que luego pase a ser un derecho. Técnicamente esto iría en contra de las libertades de los usuarios, aunque suena razonable para una empresa que desarrolla código único y especial. Nada te impide crear tu propia licencia, así que podría ser una solución de equilibrio para la situación actual de Software libre vs software privativo. He de añadir que seguramente a la FSF esto le parecería aberrante (no tengo la certeza y aún no lo he preguntado), pero en la práctica podría ser útil hacia un mundo de licencias libres.
  • ¿Cuando se considera una obra derivada de una con licencia GPL, y tengo que licencias el resto de código como GPL? ... (Falta investigación)
  •  ¿Cómo puedo hacerme de la FSF? Visita su web y hale, para adentro.
  • ¿Existe realmente San Ignucio? ¿Es la religión verdadera? Existe, efectivamente, y la wikipedia explica todo muy bien. No puedo asegurar de que sea la verdadera, pero da algunas respuestas a la vida. Por suerte no requiere el celibato, aunque es muy dificil llevar una vida pura como exige su camino. Una lástima que no bendigan agua para exorcizar ordenadores poseidos por el demonio privativo.
Una charla completa interesante, para bien o para mal, en youtube con codec privativo:



No olvides pasarte por esta entrada para aprender un poco más sobre las licencias. Si quieres saber más, puedes adquirir el libro de ensayos Richard en la web de la FSF. También hay muchas universidades con información abundante sobre el tema.

Licencia de este post, CC no derivados porque es una opinión o punto de vista.

Enlaces de interés:
- Diferencia SW libre y Open Source, fuente genbeta, via RDCH106

No hay comentarios:

Publicar un comentario