Ir al contenido principal

Hay cosas que no explican cuando enseñan acerca del Software Libre


1       Hay cosas que no explican en el Software Libre

1.1      Programas compilados y programas interpretados

La computadora solamente “habla” en binario. La computadora no puede entender lo que nosotros los humanos, como desarrolladores de software y programadores, le decimos qué hacer. Para eso se inventaron los lenguajes de programación.
Un Lenguaje de Programación es una forma de comunicarnos nosotros los humanos con las computadoras. Pero estos lenguajes traducen nuestras instrucciones en Instrucciones de Computadora, es decir, en Binario, cosas que el Procesador y todos sus componentes sí podrán descifrar.
Existen dos formas de ejecutar un programa. Ambas formas funcionan por medio del Sistema Operativo de la computadora. Esas dos formas son:
1.       Programa compilado: Programa en lenguaje o semi-lenguaje de computadora. Están en binario. Ejemplos: Microsoft Word, LibreOffice, FreePascal, Turbo Pascal, etc.
2.       Programa interpretado: Programa que se ejecuta por otro programa marco llamado Intérprete. El intérprete a menudo es llamado Máquina o Motor de software. Ejemplos de programas interpretados: OpenOffice.org, ModellusX, PyCAD, Aplicaciones Web, etc. Ejemplos de Intérpretes: Java Virtual Machine, Python, Ruby, etc.
El programa interpretado puede tener su código a la vista, su código ofuscado (que no se entiende nada, pero el intérprete lo puede hacer), o código codificado/comprimido con contraseña.

1.2      Software Libre

El Software es Libre si cumple las cuatro condiciones fundamentales:
0.       Es la primera. Libertad de uso, para cualquier propósito. No restringe cometer actos terroristas, pero por supuesto, esto no se puede enseñar.
1.       Libertad de estudiar al programa. Para ello tenés que tener acceso al código fuente, y tener todas sus funcionalidades habilitadas así uno puede acceder a esas funciones (el propósito mencionada en la libertad 0). Esta libertad te ayuda a que intentes buscar errores en el código, corregirlos o copiar parte del código para tus programas.
2.       Libertad de distribuir copias así ayudar al prójimo. Copiás el programa para cada compu de la escuela o de tus amigos.
3.       Libertad de distribuir copias con tus modificaciones, y beneficiarte de ser conocido, o vender tu programa como quieras.
El Software Libre tiene, por la Libertad 1, que ser OpenSource, es decir, ser un programa de Código Abierto. Y esto es, entregar tu programa con su Codificación a la vista. Pero debe tener en el principio de tu código, el texto de la licencia en la cual vos liberás tu programa.
Para asegurarse que un software es Libre, se debe distribuir con una licencia, como ser la licencia GPL en cualquiera de sus versiones (verificar los alcances de cada versión), AGPL, Creative Commons libre, etc. En las licencias dicen qué alcances tienen las 4 libertades. Todas las licencias libres solicitan que si vas a modificar su código para tu beneficio, tenés que mencionar al autor original, sino estarás incurriendo en ilegalidades.

1.3      Comunidades

El Software Libre suele generar comunidades de programadores. En cuanto más grande sea una comunidad, más gratuita suele ser la aplicación, en la medida que sus contribuyentes no dedican un buen porcentaje al desarrollo del software.
Por supuesto, no sólo están compuestas por desarrolladores las comunidades. También se componen por personas que prueban el programa, personas que enseñan el programa, personas que se encargan de avisar de errores al programa, personas que venden mercancías alusivas al programa, etc.
Lo bueno de las comunidades de Software Libre es que no forman una empresa. Puede una empresa “maligna” tratar de derribar a otra empresa, nuestra empresa, pero como el Software es de la Comunidad, no hay una empresa que destruir o derribar.
Lo otro, es que el Software Privativo no permite que extraños examinen el código. Así que la corrección de los errores están a cargo de los mismos programadores de siempre. Ante una situación de errores, por ejemplo, Windows solicita al usuario que envíe el reporte de error a sus oficinas para luego crear parches que solucionen esos errores. En cambio en Software Libre, esa restricción no existe, cualquiera puede aportar a la comunidad del software.

1.4      Cómo se entrega un software

La mayoría de los software se entregan COMPILADOS. Es decir, en código de máquina, directamente para que la máquina, por medio del Sistema Operativo lo ejecute. Si un programa está diseñado para Windows, funcionará para Windows. Si está diseñado para Linux funcionará en un GNU/Linux. Si está diseñado para MacOS funcionará en un MacOS.
Pero en el sitio para obtener el software necesitado o mencionado, que es compilado, debe estar a disposición del descargante el Código Fuente del programa (condición para cumplir la Libertad 1), si no lo hace, si no se habilita el Código Fuente no es Software Libre.

1.5      Ejemplos

Por ejemplo, tenemos el KingSoft Office. KingSoft Office es una suite ofimática con una interfaz muy similar a la de Microsoft Office 2007. Trae en su versión gratuita las aplicaciones Procesador de Textos, Planilla de Cálculos y Software de Presentación.
A su vez, tiene disponibilidad de funcionar en sistemas Windows y GNU/Linux (Software Libre, en principio). Se descarga el binario para Windows, y el binario para Linux. Pero no está disponible su código fuente. Funciona en los GNU/Linux como Ubuntu, Debian, Huayra, etc., y sin embargo no es software libre.
Otro ejemplo es el Sistema Operativo Red Hat. Este sistema se desarrolló inicialmente a partir de un Sistema GNU/Linux, y sin embargo es Software Privativo. Este fenómeno está contemplado en las Libertades del Software Libre, en la medida que uno puede beneficiarse del Sistema desarrollado. Pero “recibirá el repudio de todas las comunidades de Software Libre”. Así van surgiendo nuevas licencias, o versiones, para evitar este tipo de acciones.
Por último, un software que probé fue QCAD. Es un programa de dibujo técnico. Tuvo la intención de competir contra AutoCAD (en Argentina es el más conocido entre las clases media y baja de la sociedad trabajadora), pero se restringe a trabajar en 2 dimensiones. En principio la idea era trabajar con una aplicación llamada LibreCAD. Pero al tratar de utilizarla funcionaba mal, o mi adaptación a ella (desde AutoCAD) fue muy difícil. Leyendo descubrimos con mi grupo de trabajo, que LibreCAD descendía de un proyecto de Software Libre llamado QCAD, así que decidimos probarlo y nos resultó cómodo. Y es en la primera ejecución donde enfoco el ejemplo. Tiene habilitado desde el principio 3 plug ins que dan ciertas funcionalidades extra al QCAD, pero resulta que son Pagas, y están habilitadas por 15 minutos, y luego cierran al QCAD. Es decir, por esas funcionalidades QCAD tiene su entrada de dinero. Es totalmente válido cobrar por alguna forma en el Software Libre. Pero ojo, si uno no puede desprenderse de esas funcionalidades molestas no es Software Libre. QCAD desde el principio permite sacar esas funcionalidades pagas y trabajar tranquilamente (Libertad 0) como Software Libre.

2       Conclusión

Libre no es gratuito aclaraba Richard Stallman, el iniciador del movimiento Software Libre. Tenés que conocer los casos, y, por ejemplo, también conocer que podés beneficiarte del Software siempre y cuando respetes las licencias y las pautas de los autores de códigos anteriores.


Comentarios

Entradas populares de este blog

Probando ChatGPT - Mapa conceptual con Mermaid

 Había conversado con ChatGPT acerca de cuidado de las plantas e hidroponía. Luego de unos días me di cuenta que quizás también podría saber acerca de crear Mapas conceptuales. Salió lo siguiente; le falta un concepto para crear correctamente mapas conceptuales (la relación entre los conceptos), pero podría ser algo para ayudarnos a corregir mejor. El texto original era el que cito a continuación, pero le agregué explícitamente que me armara un "mapa conceptual" utilizando el lenguaje Mermaid, un lenguaje descriptivo que permite construir gráficos diversos, entre ellos Mapas conceptuales, generando un archivo SVG. ``` Hacé un mapa conceptual en lenguaje Mermaid con el siguiente texto, redactado anteriormente: "La hidroponía es un método de cultivo que se utiliza para cultivar plantas sin suelo utilizando una solución nutriente y agua. Algunas plantas pueden cultivarse con éxito mediante hidroponía, mientras que otras necesitan el suelo para crecer y prosperar. De las pl...

Conectar a Servidor Node.JS desde VB6 o VBA

El presente código sirve tanto para Visual Basic 6.0 (sí, todavía sirve, todavía sirve!) como para Visual Basic para Aplicaciones (Excel o VBA). ' Si estamos en Visual Basic para Aplicaciones agregar la referencia ' WinHTTP, en el menú Herramientas, Referencias, Microsoft WinHTTP Services Function Solicitar( _ ByVal URLBase As String _ , Optional ByVal Puerto As Integer = 80 _ , Optional ByVal Seccion As String = "" _ , Optional ByVal Metodo As String = "GET" _ ) As String On Error GoTo solucion #If VBA6 Then Dim objXML As New WinHttpRequest #ElseIf Win32 Then Dim objXML As Object Set objXML = CreateObject("MSXML2.ServerXMLHTTP") #End If objXML.Open Metodo, URLBase & ":" & Puerto & "/" & Seccion, False objXML.send If (objXML.Status = 404) Then Solicitar = "404 Error" Else Solicitar = objXML.responseText End If Se...