19 de marzo de 2010

Anarquismo triunfante (10 de 36)

II. Software como propiedad: el problema práctico

Para comprender por qué el convertir al software en propiedad produce software malo, necesitamos una introducción a la historia de este arte. De hecho, mejor comenzamos con la palabra “arte” misma. La programación de computadoras combina razonamiento específico con invención literaria.

A primera vista, estamos seguros, el código fuente parace ser una forma de composición no-literaria 11. La consideración primaria en un programa de computadora es que sea funcional, es decir, que opera de acuerdo a especificaciones que describen formalmente sus resultados en función de sus entradas. En este nivel de generalidad, lo único visible es el contenido funcional de los programas.

Pero los programas de computadoras existen como partes de sistemas de cómputo, que son colecciones interactuantes de hardware, software, y seres humanos. Los componentes humanos de un sistema de cómputo incluyen no sólo a los usuarios, sino también a las (potencialmente diferentes) personas que dan mantenimiento y que mejoran al sistema. El código fuente no sólo se comunica con la computadora que ejecuta el programa, a través del compilador intermediario que produce el código objeto en lenguaje de máquina, sino también con otros programadores.

11. Es esencial algún vocabulario básico. Las computadoras digitales en realidad ejecutan instrucciones numéricas: cadenas de bits que contienen información en el lenguaje “nativo” creado por los diseñadores de la máquina. A esto generalmente se le dice lenguaje de máquina. Los lenguajes de máquina del hardware están diseñados para una mayor velocidad en la ejecución en el nivel del hardware, y no son convenientes para su uso directo por seres humanos. Así que entre los componentes centrales de un sistema de cómputo están los lenguajes de programación, que traducen expresiones conveninetes para seres humanos a lenguaje de máquina. La más común y relevante, pero de ningún modo la única forma de lenguaje de computadora es el compilador. El compilador hace traducciones estáticas, de modo que un archivo que contiene instrucciones legibles para un humano, conocidas como código fuente resulten en la generación de uno o más archivos de lenguaje ejecutable por la máquina, conocido como código de objeto.

No hay comentarios.: