Programadores de los años 60: el arduo arte de codificar con tarjetas perforadas

Hoy en día los programadores cuentan con numerosos recursos para desarrollar sus creaciones, incluso antes de la revolución de la IA y del *vibe coding*. “Picar código” sigue siendo complejo, pero es relativamente cómodo gracias a los modernos entornos de desarrollo integrado (IDE) que facilitan la programación en diversos lenguajes. Además, programar es accesible: cualquier PC modesto puede servir para ello, aunque los asistentes de IA hayan incrementado algunos costes.

Hace medio siglo, la realidad era muy diferente. Quienes se dedicaban a la programación enfrentaban obstáculos significativos: no existían los ordenadores personales, el acceso a *mainframes* y servidores estaba reservado a unos pocos privilegiados, y ni siquiera había monitores para visualizar el código en tiempo real. Todo era más artesanal e incómodo. Las tarjetas perforadas son el legado de una época que demuestra que, en tecnología, cualquier tiempo pasado no siempre fue mejor.

Foone, coleccionista e historiador tecnológico, lo explicaba en un hilo de Twitter donde relataba cómo trabajaban los programadores en 1962. Su imagen distaba mucho de la de los jóvenes que hoy crean imperios tecnológicos desde un dormitorio universitario o un garaje. Aquellos programadores solían ser adultos que vestían con chaqueta y corbata, ya que para acceder a este campo era necesario trabajar en grandes empresas, las únicas con acceso a los *mainframes* de la época.

Un ejemplo destacado era el **IBM 7090**, uno de los primeros ordenadores basados en transistores, a diferencia de su predecesora, la IBM 709, que utilizaba tubos de vacío. Esta máquina representó una revolución: multiplicaba por seis el rendimiento anterior y era capaz de ejecutar 100.000 operaciones de coma flotante por segundo.

Sin embargo, programar en ella no tenía nada que ver con las interfaces actuales. No se escribía código viéndolo en una pantalla. Tampoco eran sistemas multiusuario o multiproceso, por lo que solo una persona podía utilizar toda esa potencia en cada sesión. Esto convertía a estas máquinas en bienes muy preciados y costosos, que IBM alquilaba.

En 1962, alquilar una de estas computadoras durante un mes costaba **63.500 dólares**, equivalentes a unos **421.000 dólares actuales** ajustados por inflación. Un cálculo simple revela que cada minuto de uso costaría alrededor de **10 dólares de hoy**. En un par de horas, se gastaba lo que hoy vale un PC o portátil de gama alta.

Estas restricciones económicas hacían que el tiempo de computación fuera extremadamente valioso. Aquí es donde entraban en juego las **tarjetas perforadas**, cada una con una capacidad de 80 caracteres —aunque normalmente solo se usaban los primeros 72—, que representaban el máximo por línea de código.

Para perforar las tarjetas se utilizaban máquinas especiales, fabricadas por empresas como IBM, que podían ser mecánicas o electromecánicas. El proceso era sencillo: los caracteres escritos en la máquina se “traducían” en perforaciones en la tarjeta.

Pero programar no consistía en sentarse y escribir comandos sin más. Primero, el programa se redactaba a mano o a máquina, utilizando plantillas proporcionadas por IBM para evitar errores y no exceder el límite de caracteres por línea. El resultado final era un mazo de tarjetas perforadas que contenía todas las instrucciones del programa, las cuales debían estar perfectamente ordenadas en secuencia.

Este mazo se entregaba a los operadores del *mainframe*, quienes lo introducían junto a una tarjeta de control de tareas que indicaba al sistema cómo y durante cuánto tiempo ejecutar el programa. Dado que otros programas podían estar en **cola de ejecución** —era un trabajo por turnos—, el proceso no era inmediato.

La ejecución podía tardar bastante, por lo que el programador no esperaba *in situ*. El operador dejaba el mazo y los resultados impresos en un cubículo, donde el programador los recogía posteriormente. Si el programa fallaba o producía un resultado inesperado, había que identificar el error, corregir la tarjeta o tarjetas afectadas y repetir todo el proceso.

Entre los avances de la época destacó la posibilidad de convertir tarjetas perforadas en programas almacenados en **cintas magnéticas de casete**, lo que agilizaba la lectura.

Este era el día a día de los programadores, que solían utilizar lenguajes como **FORTRAN** o **COBOL**. Estas máquinas tuvieron aplicaciones históricas: se emplearon en el desarrollo del CTSS (Compatible Time-Sharing System), uno de los primeros sistemas operativos, creado por el Centro de Computación del MIT, y fueron cruciales para la **NASA** en las misiones Mercury, Gemini y Apolo (para esta última, se usó una IBM 7904 mientras se adaptaba el software a los nuevos System/360).

También hubo aplicaciones curiosas: en 1962, los matemáticos Daniel Shanks y John Wrench calcularon los primeros **100.000 decimales de π** con una de estas computadoras. Un año antes, Alexander Hurwitz había usado una IBM 7090 para descubrir los dos números primos más grandes de la época, con 1.281 y 1.332 dígitos.

**Redacción FV Medios**

**REDACCIÓN FV MEDIOS**

Derechos Reservados FGJ MULTIMEDIOS 2024