El pasado Martes, La Nueva España
publicó un breve perfil mío elaborado a partir de frases entresacadas de la
videoconferencia en la EPI-Gijón. A la vista del titular, parece que lo que más les llamó la atención fueron mis inicios como programador en un Spectrum en torno a 1990. Curiosamente ayer estaba conversando con unos compañeros, algunos de los cuales apenas habían nacido cuando yo escribía mis primeras líneas de código, y pude darme cuenta de que escuchaban con cierta incredulidad mis historias del Spectrum. Antes de que se me escapen de la memoria los recuerdos de aquella época, y en beneficio también de los programadores que nacieron con Java y Eclipse bajo el brazo, hoy voy a dedicar esta entrada en el blog a explicar cómo era la experiencia de programar con el Spectrum. No pretendo ser el decano de los programadores, y de hecho conozco colegas que echaron los dientes entre tarjetas perforadas. Solo quiero comparar algunos detalles de ambas épocas.
Mi
Spectrum +2A tenía este aspecto (foto: Wikipedia):
Lo que más llama la atención era la unidad de cassettes, que era el único dispositivo de almacenamiento persistente. Es decir, no había disco duro. Cuando apagabas el ordenador, todo se perdía, excepto lo que hubieras grabado en una cinta. Las cintas no tenían un sistema de ficheros y directorios. Para grabar o cargar un programa, simplemente ponías la cinta en marcha en la posición apropiada y esperabas unos minutos mientras escuchabas unos chirridos y presenciabas un espectáculo de luces psicodélicas en la pantalla. En una cinta podían caber varios programas, así que normalmente anotabas la "vuelta" o minuto en la que comenzaba tu programa.
La unidad de cassette de mi Spectrum acabó por estropearse, así que dejé de poder salvar mis programas. Tuve que recurrir a transcribirlos en libretas (no tenía impresora). Por supuesto, para recuperar el programa de la libreta, tenía que volver a teclearlo línea a línea. En algunos casos, miles de líneas.
Este es el aspecto que tenía el "IDE", es decir, el editor de programas (foto:
oldmachinery):
¡Sorpresa: ya existían los editores a pantalla completa! Claro, que en este caso no había otra opción, puesto que el ordenador era completamente monotarea. Los números de línea no consecutivos que aparecen a la izquierda eran una parte importante del programa. No sólo servían para controlar el flujo de ejecución (obsérvese la instrucción
GO TO 50 en la última línea. ¡Bucle infinito!). También eran una parte fundamental de la edición del programa. El editor no disponía de "cursor" para introducir texto en cualquier posición, sino que se escribía siempre en la parte de abajo de la pantalla. Por ejemplo, para añadir un línea entre la 20 y la 30, había que ponerle un número apropiado, como "
25 LET a$ = b$ + c$", y el ordenador situaba la nueva línea en la posición apropiada. Modificar una línea suponía tener que reescribirla entera. Por ejemplo, si la línea 10 contenía un error, había que introducir una nueva línea 10 para sustituir a la existente. ¿Y qué pasaba si querías insertar una línea entre la 19 y la 20? Afortunadamente, el editor disponía de un menú para renumerar automáticamente todas las líneas en intervalos de 10 (foto:
fruitcake.plus.com):
¿Suena complicado, verdad? Colegas programadores, pensad en ello la próxima vez que vuestro IDE haga un refactoring por vosotros.
Los que quieran seguir leyendo sobre algunos de mis primeros juegos, pueden hacerlo (en inglés) en
mi otro blog.