sábado, 12 de abril de 2014

Software Libre explicado a tu abuelita



Había una vez un científico de renombre de cuyo nombre no quiero acordarme (creo que Einstein pero me da paja buscar), que en su sabiduría dijo "Entendes de verdad algo si puedes explicarselo a tu abuela". Y la verdad es que pongo a prueb mis conocimientos efectuando este reto. Con decirles que a mi abuelita, que por motivos de la vida fué hasta a 4° de primaria la hice entender trigonometría con todo y radianes incluidos, intentaré (repito y reitero, INTENTARÉ) explicar el Software Libre y de código abierto (lo trataremos como uno solo, aunque son cosas algo distintas. Luego distingo). Si eres un estudiante que tiene que hacer una tarea de esto para la clase de informática, sientete libre de usar esta entrada como fuente (pero si te reprueban el trabajo a mi no me eches la culpa)

Empezemos por ¿Qué es código?. En computación e informática, el código de un programa es su mera base y su mecanismo: lo que hace que el programa haga lo que tenga que hacer. Lo que contiene son las instrucciónes logicomatemáticas que la compu entiende y use en orden para trabajar. Lo que una computadora hace en base es meterle información, procesarla y/o almacenarla, y luego sacarla ya procesada, como la harina de un pan (la parte de procesar/almacenar se puede hacer chorrocientas veces si lo que se quiere hacer lo necesita). El código de un programa son las instrucciónes a la compu de cómo debe tomar la información, procesarla, almacenarla y sacarla. Si queremos un programa para sumar el código debe decirle a la computadora "El usuario debe meter un número; luego meter otro; luego tomar los dos números y sumarlos, y luego mostrar ese resultado y decirle al usuario '[primer número] más [segúndo número] es igual a [resultado]'". Ahora, las computadoras no entienden nuestro lenguaje, ya sea español, inglés, sueco, jaonés o klingon, ya ni digamos de nuestro hablar cotidiano, ellas entienden lenguaje binario, unos y ceros, señal-no señal, corriente eléctrica-no hay corriente, foquito encendido-foquito apagado, pero por fortuna allá por los 60's-70's a los señores informáticos del entonces (batas blancas y lentes de pasta), se les ocurrió hacer un lenguaje lo suficiente lógico para que la computadora lo entiende pero lo suficientemente inteligible como para que algo más cercano a un simple mortal lo udiese escribir, estos son los Lenguajes de Programación de Alto Nivél. Por poner un ejemplo, está uno muy viejo y que sirve perfecto para ejemplificar esto, el BASIC (siglas de Beginner's All-purpose Symbolic Instruction Code (Código simbólico de instrucciones de propósito general para principiantes en cristiano, que"curiosamente" forman la palabra básico en ingles), este lenguaje es muy sencilo de entender y en él podemos escribir nuestro programa de sumar que hicimos antes así:

10 input "Ponga el primer número: "; x
20 input "Ahora ponga el número a sumar: "; y
30 z=x+y
40 print x " más " y " es igual a " z
50 end

Notemos como ponemos las instrucciónes a medio camino entre nuestro lenguaje (en esta cas inglés porque lo inventaron unos gringos) y un mmás lógico y estructurado para la compu. Numeramos las líneas para que la compu sepa su orden (se numeran de 10 en 10 por si se necesita meter comandos entre líneas, pero igual podemos numerarlas 1, 2, 3, 4...). Primero decimos en 10 a la compu que se va a dar un número que será x, y entre comillas lo que va a poner en pantlla, luego en 20 decimos a la máquina "dile que 'Ahora ponga el número a sumar' y luego te daremos el segúndo número que será y". En 30 es cuando sumamos, diciendole a la compu "ahora suma x más y, y lo que salga será z". En 40 le decimos que ponga en pantalla los valores de x, y y z con los textos entre comillas para que quede como "x más y es igual a z". Y en 50 le decimos que ahí acaba la cosa, que no le siga, que le dé corte como dicen en Chile. Aquí una imágen que demuestra como este código de verdad funciona, ejecutandolo en un emulador de este código. A la derecha está lo que se vería en la pantalla de la computadora y a la izquierda el código que escribimos (con colorcitos para distinguir las partes de él)


Ahora, esto es algo de lo más sencillo, programas como word, reproductores de música, navegadores de internet, juegos, etc, tienen código literálmente millones de veces más extenso y mucho más complejo (ya que uno no va a generar una imágen animada con solo sumas), el cual tiene que ser elaborado por mucha gente colaborando, casi siempre en empresas de software, además de que hay lenguajes de programación más complejos y completos que permiten hacer otras cosas, por mencionar unos están Java, C++, PHP, HTML5, Lua, Fortran, Pascal, y un largo etcétera...



Y todo esto sólo como base...

Ahora al loro, ¿Que es el Software Libre? . Pues bien, como el código de estos programas es tán complejo y lleva millónes de líneas de código, empresas se crean para contratar empleados para hacer estos programas, y podemos mencionar a Microsoft, responsable del sistéma operativo Windows (que es probable que es el que estés usando), Google, que además de hacer el buscador hace el sistéma operativo para teléfonos Android, Riot Games que hace el videojuego Leage of Legends, Mojang que hace mi queridísimo Minecraft, Yamaha que hace Vocaloid, y Cripton Future Media que hace las cantantes virtuales del Vocaloid más famosas como Hatsune Miku (Esa niña de laaargas coletas azules que sale en el reloj a la derecha). Esto hace que los programas (y por lo tanto su código) sean propiedad de la empresa, aplicandoles Copyright y términos de uso, haciendo que el usuario se limite a usar el programa y nada más.

Pues allá por los 80's un señor que parecía Hagrid en versión nerd llamado Richard Stallman era devoto a hacer cosas con las computadoras y darlas a conocer con sus compadres informáticos, copartiendolo sin problema así como le pides a tu amigo una receta de cocina, era un hacker (hacker NO es alguien que se mete a tu compu a sacarte el número de la tarjeta de crédito, eso es otra cosa). El chiste es que estaba trabajando en un laboratorio, donde compraron una nueva y flamante impresora, y la conectaron en red para que todo mundo en el laboratorio mandara ahí a imprimir. el problema era que no todo lo que brilla es oro, y la impresora de vez en cuando se le atascaba el papel, pero no avisaba que fallaba, así que uno iba a ver cómo ba su trabao y se encontraba el papel atorado cual pasajero del metro en hora pico y tooodos los otros trabajos esperando a ser impresos. un desastre. A Richard se le ocurrió que podía hacer que al menos si se atascara, mandara un aviso deque había problemas, y para eso necesitaba el código fuente del programa de la impresora, pero oh sorpresa, el código era propiedad de la empresa de la impresora (hasta rima la cosa), y por lo tanto tenía Copyright, y restricciónes de que sólo se podía usar, NO modificar, así que el señor Richard no podía hacer nada, sólo hacer la modificación pero acordada con la empresa, sin poder compartir su trabajito con sus compañeros como lo acostumbraba, cosa que iba en contra de sus principios. Así que dijo "entonces crearé programas bajo una licencia de uso donde todos puedan usarla" y as´este señor barbudo y de larga cabellera parió a su mejor vástago: El Software Libre.

Te presento a Don Ricardo
Y eso consta el software libre: programas cuyo código fuente es público y cualquiera puede usarlo, copiarlo, distribuirlo, alteralo y hacer lo que uno quiera. Según la base de datos mundial (conocida por los simples mortales como Wikipédia), las 4 libertades del software libre son:

0 la libertad de usar el programa, con cualquier propósito.
1 la libertad de estudiar cómo funciona el programa y modificarlo, adaptándolo a tus necesidades.
2 la libertad de distribuir copias del programa, con lo cual puedes ayudar a tu prójimo.
3 la libertad de mejorar el programa y hacer públicas esas mejoras a los demás, de modo que toda la comunidad se beneficie.
 Algunos dirían que es medio comunista la cosa.

Así, el código de este programa es como una fórmula matemática, puedes usarla, dársela a tu sobrino que está estudiando para su exámen de matemáticas para que la use en su tarea, despejar una variable para así calcular otra cosa, combinarla con tus fórmulas o las de otros para hacer nuevas, etc.

Pero muchos se preguntarán "pero es es cosa de informáticos, ¿Yo cuando veré eso en mi vida diaria?" Pue te diré, ¿alguna vez has usado, o al menos oído de Android, Firefox, Linux, Audacity ú OpenOffice? Pues todo eso ES SOFTWARE LIBRE. Hasta muchas de las cosas que hacen que internet funcione son por software libre.

Pus hasta aquí este embrollo que escribí por puro gusto (cosas de geeks). Espero que les sirva de algo.







End of line_

No hay comentarios:

Publicar un comentario