Cuando explicamos qué es el software libre hay algo de lo que hablamos que quizá convenga aclarar. Con el software libre se distribuyen tres cosas: el programa ejecutable, la documentación y el código fuente. Las distribuciones de software libre se diferencian precisamente porque entregan el código fuente del programa.

 

Pero ¿qué es eso del código fuente?. Ya de entrada podemos decir que gracias a esto del código fuente, el usuario final podrá ejercer las libertades que ofrece el software libre. En especial las libertades de estudio y de modificación, como explicaremos más adelante.

 

Para el usuario no experto en programación el código fuente correspondería al manual o escrito que describe el diseño en sí de la herramienta o programa. Con el código fuente tenemos el «secreto» que las empresas de software privativo se guardan muy y mucho de que caiga en manos de cualquiera que lo pueda copiar. A esto lo llamarían robo y es lo que en muchas ocasiones se ha relizado a pesar de intentar guardarlo a cal y canto.

 

El código fuente es algo que conocen bien los programadores. Richard Stallman lo compara con una receta de cocina. Pero poniéndomos más técnicos … El código fuente es el conjunto de instrucciones escritas en un lenguaje de programación que, después de un proceso de traducción a lenguaje máquina, da como resultado el programa final ejecutable. Por lo general, estos códigos pueden ser entendidos por aquellos que conocen el lenguaje en el que está escrito. Podemos hablar aquí de que existen múltiples lenguajes de programación: C++, java, …y, por tanto, de programas escritos en estos lenguajes.

 

En el software libre, el código fuente está a disposición del usuario, que a su vez puede ser un programador. Este podrá conocer cómo está hecha la herramienta y podrá mejorarla o modificarla a su gusto en función de los requerimientos particulares que tenga. Es aquí donde este usuario-programador puede ejercer la libertad de estudio y de modificación del programa o código fuente. Y no sólo eso, sino que podrá distribuir este programa con las mejoras, siempre y cuando se mantenga igualmente libre. Nadie así se puede apropiar del código, puesto que estará obligado a dejarlo disponible para que puedan surgir otras mejoras o modificaciones.

 

¿Y a quién le importa?

Nos interesa a todos. A programadores expertos y a usuarios finales.

Espero que llegado a este punto hayamos encontrado que los programadores podrán obtener beneficios en relación al estudio y la modificación del código, como hemos explicado antes. Sin embargo, a los usuarios finales, acostumbrados a simplemente ejecutar el programa en su máquina, parece que no mucho. ¿Para qué queremos un código que no entendemos? ¿Para qué ofrecer una receta a quien no cocina, y sólo quiere disfrutar de su menú?

 

¿Qué beneficios tiene un usuario no experto en programación?

El software libre está enfocado al beneficio del usuario y a sus aportaciones en forma de comentarios, descubrimiento de errores, y adaptaciones a sus necesidades.

Los desarrolladores o programadores de software estarán abiertos a que el usuario no experto pueda hablar de qué le gustaria mejorar y qué errores ha encontrado. Esto contribuye a la mejora final del programa y por tanto como usuarios nos beneficiamos.

Dejamos para otro momento la organización de las comunidades de software libre. Constituidas tanto por programadores, como por usuarios no expertos dispuestos a realizar sus aportaciones en forma de sugerencias o de revisores de los programas. Las presentaciones, la difusión, los eventos, congresos, marketing y ¡cómo no! la distribución en si del programa pueden ser algunas de las aportaciones activas de cualquier usuario dispuesto a ello, incluso puede obtener beneficios económicos.

 

¿Dónde podemos encontrar el código fuente?

Los sitios para encontrar el código fuente de un programa están en Internet. Las empresas y/o las comunidades de software libre tienen una web con todo lo relacionado con el programa. Esta forma centralizada  de reunir información, personas, publicaciones de versiones, descargas… es lo que constituye el denominado Proyecto. En muchas ocasiones podemos ver incluso la forma en que se organiza la Comunidad y las aportaciones que realiza cada cual. Fijémonos, si no lo hemos hecho antes, que por lo general siempre existe una parte en la web dedicada a la Comunidad.

En ocasiones, los proyectos deciden también publicar todo lo relativo a los programas: su código fuente y su documentación, en sitios web llamados forjas, en inglés Forge. Las forjas en sí constituyen los mayores almacenes de sofware libre organizados por diferentes temas y propósitos. En el enlace de la wikipedia podemos encontrar algunas, incluso españolas: Ejemplos de forjas en wikipedia.

 

Abriendo código ¿Algún ejemplo de código fuente?

A modo de ejemplo vamos a fijarnos en un proyecto actual llamado Open DNI.

La web oficial Open DNI nos muestra algunas cosas relativas al proyecto. Es importante en este caso que observemos en la web y también por curiosear la pestaña estadísticas. Sino, podemos ir directamente a la pestaña Forja que nos lleva directamente a forja oficial del proyecto Open DNIe . Una vez ahí, y protegido por seguridad, iremos a la pestaña de Ficheros, donde encontraremos los códigos fuente y la documentación que podemos descargar directamente en nuestro ordenador. Descargamos por ejemplo alguno de los que aparece en el título OpenDNIe Releases (Sources) y ¡voilà!.

Una vez descargado podemos inspeccionar tranquilamente cualquiera de los programas que están escritos en C. En el siguiente enlace tenemos uno de estos programas: dnie-tool

Espero vuestras contribuciones y comentario.

That’s all friends!

Dedicado a Stefanía Constantin. Me alegro que me hagas esa pregunta.

 

Centro de preferencias de privacidad

¿Quieres cerrar tu cuenta?

Se cerrará tu cuenta y todos los datos se borrarán de manera permanente y no se podrán recuperar ¿Estás seguro?