-- --

Buscar información

Facebook y Twitter

jueves, 19 de enero de 2017

G. HOPPER: LA MUJER QUE "CREO" EL SOFTWARE

Uno, cero, cero, cero, uno, cero, uno, uno. Cero, uno, uno...Ese es el lenguaje de las computadoras. Cada cosa inteligente que tu computadora hace -una llamada, una búsqueda, un juego- se reduce a unos y ceros, ¿cierto? Pues no precisamente. Más bien se reduce a la presencia o ausencia de corriente en los diminutos transistores de un chip semiconductor. El 0 o el 1 sólo denotan si hay o no corriente.  Las primeras computadoras como la Automatic Sequience Controlled Calculator, después conocida como Harvard Mark 1 tenían que ser programadas así.

Era una concatenación de 15 metros de largo y 2,5 metros de alto de ruedas, varas, engranajes e interruptores.

Usaba más de 850.000 kilómetros de cable. Seguía las instrucciones de un rollo de cinta de papel perforado, como un piano de juguete.

Si querías que resolviera una nueva ecuación, tenías que calcular cuáles interruptores debían estar prendidos o apagados, cuáles cables debían estar conectados a qué.

Luego tenías que accionar todos los interruptores, conectar todos los cables y hacer todos los huecos en el papel.

Programar no sólo era un desafío que ponía a prueba la mente de los genios matemáticos, también era una labor manual tediosa, repetitiva y proclive al error.

Durante las décadas que le siguieron a Harvard Mark 1, máquinas más compactas y fáciles de usar, como Commodore 64, fueron llegando a escuelas.

Si eres de cierta edad, quizás recuerdas cuán milagrosos parecían tus primeros encuentros con una computadora.

Y si te preguntas cómo han progresado tanto desde Mark 1, una de las razones ciertamente es el cada vez más diminuto tamaño de sus componentes.

Pero también es impensable que las computadoras puedan hacer lo que hacen si los programadores no pudieran escribir software, como Windows, en un lenguaje parecido al humano. Ese después se traduce en unos y ceros, corrientes y no corrientes, que al final hacen el trabajo.

Lo que empezó a hacerlo posible se llama el compilador.

Y la historia del compilador empieza con una mujer llamada Grace Hopper.


Hoy en día se discute mucho sobre cómo hacer que más mujeres hagan carrera en tecnología.

En 1906, cuando Grace Murray Hopper (USA, Nueva York, 9-12-1906 - Condado de Arlington, 1-01-1992) nació, a pocos les preocupaba la igualdad de género en el mercado de trabajo.

Afortunadamente para ella, entre esos pocos estaba su padre, un ejecutivo de seguros de vida quien no entendía por qué sus hijas debían recibir menos educación que su hijo.

Grace Brewster Murray, Grace fue una bisnieta de Alexander Russell, un almirante de la Armada de los Estados Unidos. Éste fue su modelo y su héroe personal. También fue nieta de un ingeniero civil, John Van Horne. Sus padres fueron Walter Fletcher Murray, corredor de seguros y Mary Campbell Van Horne. Desde muy pequeña demostró aptitudes para las ciencias y la matemática. Recibió siempre el apoyo de su abuelo y de su padre para que las estudiara, pues quería que sus hijas tuvieran las mismas oportunidades que su hijo varón. También le atrajo mucho cualquier tipo de dispositivo mecánico, tanto fue así, que con 7 años desarmó todos los relojes de su casa para ver si podía entender cómo funcionaban. 

En 1930 se casa con Vincent Foster Hopper, un doctor en literatura en lenguaje inglés, que durante muchos años fue presidente del departamento de inglés de la universidad de Nueva York. Vincent y Grace se divorciaron en 1945 sin tener hijos.
Grace estudió en varias escuelas privadas para mujeres, y en 1924 ingresó en Vassar College en Nueva York, donde estudió matemáticas y física, graduándose con honores en 1928. Poco después, obtuvo una beca para cursar una maestría en matemática en la universidad de Yale, donde se graduó en 1930.
Le ofrecieron un puesto como asistente en el departamento de matemática de Vassar College, en donde permaneció hasta 1943. Mientras continuó sus estudios en Yale, donde se doctoró en matemática en 1934.

Aunque soñaba con alistarse en la Armada como su abuelo, en ese tiempo no recibían mujeres, así que se resignó a ser una profesora.

Pero en 1941, cuando el ataque a Pearl Harbour arrastró a Estados Unidos a la Segunda Guerra Mundial, el talento femenino también fue llamado a luchar, y la Armada empezó a aceptar mujeres.

Grace se alistó inmediatamente.
Matemática a bordo

Si te estás preguntando de qué le sirve a la Armada una matemática, piensa en que tienes que apuntar un misil: ¿en qué ángulo y dirección lo debes lanzar?

La respuesta depende de muchas cosas: cuán lejano está el blanco; cuál es la temperatura, la humedad, la velocidad y la dirección del viento.

Los cálculos no son complejos pero toman un tiempo precioso si los hace una "computadora" humana: alguien con lápiz y papel.

¿Quizás había una forma más rápida?

A la Armada le intrigaba el potencial de ese artilugio que recientemente había hecho un profesor de Harvard, Howard Aiken.

Se trataba de Mark 1 y como ahora contaban con una lugarteniente matemática, la enviaron a que trabajara con Aiken a ver qué podían hacer.

A Aiken no le cayó muy en gracia que le mandaran a una mujer a unirse a su equipo, pero poco después Hopper lo había impresionado tanto que le pidió que escribiera el manual de operaciones.

Saber qué debería decir ese manual implicaba mucha experimentación.

La mayoría de las veces, Mark 1 se detenía después de apenas empezar, Y no había un mensaje de error amable, como ocurre ahora.

Una vez fue porque una polilla se había metido en la máquina... y tal parece que de ahí viene el término "debugging", que es como se dice "depurar programas" en inglés, pues la polilla es un bicho y bicho se dice "bug" en inglés (aunque hay quienes aseguran que el término ya existía). Pero generalmente, ese bug era metafórico: un interruptor mal accionado, un hueco que no debería estar en el papel... Para hallarlos se precisaba de una labor de detective ardua y monótona.

Hopper y sus colegas empezaron a llenar libretas con trozos de código comprobado y reutilizable.

Para 1951, las computadoras habían avanzado lo suficiente para guardar esos trozos -llamados "subrutinas"- en sus propios sistemas de memoria.
¿Pura pereza o sentido común?

Para entonces, Hopper trabajaba para una compañía llamada Remington Rand.

Allá trató de convencer a su jefe de que permitiera que los programadores nombraran esas subrutinas con palabras familiares, es decir, cosas como "sustraer impuestos del salario" en vez de -como explicó Hopper- "tratar de escribir eso en código octal o usando todo tipo de símbolos".

Y dijo: Nadie lo había pensado antes porque no eran tan perezosos como yo"
Eso no era cierto: Hopper era conocida por trabajar duro.

Pero no todo era ganancia: la idea del compilador involucraba una contrapartida. Hacía que la programación fuera más rápida, pero los programas resultantes funcionaban más lentamente.

Por eso Remington Rand la rechazó. Cada cliente tenía sus propios requerimientos para su flamante máquina computadora, así que tenía sentido que los expertos de la compañía las programaran para que fueran lo más eficientes posible.
¡No hay problema!

Hopper no se desanimó: sencillamente escribió su primer compilador en su tiempo libre. Y a otros les fascinó, pues les ayudaba a pensar con más claridad.

Uno de ellos fue un cliente llamado Carl Hammer, un ingeniero quien lo usó para resolver una ecuación con la que sus colegas habían estado lidiando durante meses: Hammer escribió 20 líneas de código y la resolvió en un día.

Programadores afines de todo USA  empezaron a mandarle nuevos trozos de código a Hopper, quien los iba guardando en la memoria hasta la próxima publicación.

En efecto, Hopper estaba creando el software de código abierto.

Su compilador se convirtió en uno de los primeros lenguajes de programación, COBOL; y, fundamentalmente, abrió el camino a la distinción ahora conocida entre hardware y software.

Con máquinas como Harvard Mark 1, el software era el hardware: ninguno de sus patrones de interruptores funcionaría en otra máquina que estuviera conectada de forma distinta.

Pero si una computadora tiene un compilador, puede ejecutar cualquier programa que lo use.

Desde entonces, más y más capas de abstracción han separado a los programadores humanos de los chips físicos.

Y cada una de esas capas ha sido un paso más en la dirección en la que Grace Hopper demostró que era más sensata: liberar el poder intelectual del programador para que piense en algoritmos y conceptos, no en interruptores y cables.

Para Hopper, sus colegas inicialmente se resistieron no porque querían que los programas funcionaran más rápido, sino porque disfrutaban del prestigio que les daba ser los únicos que podían comunicarse con la casi divina computadora en representación de los meros mortales que se limitaban a comprarla.

"Los sumos sacerdotes", los denominaba la matemática.

Hopper pensaba que cualquier persona debería poder programar. Ahora, cualquiera puede. 
Y las computadoras son mucho más útiles gracias a ello.





No hay comentarios: