¿Cómo escribimos programas de computadora antes de los días de pantallas y GUI?

Guau. Gracias por el A2A. Lo hice hace muchos años.

La primera computadora con la que tuve el privilegio de trabajar fue una DEC PDP-10 que era la computadora central (¿solo?) En todo el distrito escolar, que probablemente se usaba para la nómina o algo así, pero a los estudiantes de matemáticas que querían se les permitía para jugar para aprender programación. En realidad, mi hermano menor hizo algunas cosas locas como buscar primos de Mersenne (primer Mersenne) (esto fue en la escuela secundaria, eso sí) …

Pero yo divago. Entonces, teníamos esta máquina de aspecto genial llamada teletipo, con un lector de cinta de papel adjunto. Se parecía mucho a esto:

Puede escribir en el teclado para ingresar sus programas, que luego se pueden perforar en la cinta de papel y volver a ingresar en una fecha posterior si necesita ejecutarlos nuevamente. O simplemente podría volver a escribir todo el programa al día siguiente (y al siguiente y al siguiente). Hizo un ruido muy satisfactorio al escribir los resultados, a unos 2 caracteres por segundo …

La siguiente máquina divertida que usamos (esto fue en la universidad) fue la máquina de teclado, que se parecía un poco a esto: Keypunch

Estaba muy orgulloso de mi tarjeta de batería personalizada, que se veía así: Keypunch (y sí, eso está en el Museo de Historia de la Computadora, que me hace sentir REALMENTE viejo).

Después de eso, usamos principalmente pantallas y luego interfaces gráficas de usuario, pero sí, en realidad usé estos dispositivos para escribir programas.

(No entrará en la secuencia de arranque de la computadora a través de los botones del panel frontal en el “minicomputador” HP en la universidad, tampoco … otra historia completa).

¡Gracias por preguntar!

Las primeras computadoras electrónicas programables (por ejemplo, ENIAC) se programaron cambiando las conexiones (como una centralita telefónica antigua):

Hasta mediados de la década de 1980, cuando se usaban tarjetas perforadas (mainframes de IBM, etc.):

Programación de computadoras en la era de las tarjetas perforadas

Cuando existían pantallas y cintas de computadora / disquetes / unidades (pero aún no había IU gráficas) todo se hacía con herramientas de línea de comandos.

Una visión general muy simplificada del proceso:

  • Se inició un editor de texto (según los estándares actuales muy básico) en la línea de comando.
  • El código se escribió en este editor de texto y se guardó en un archivo.
  • Se inició un compilador en la línea de comandos con uno de los parámetros del archivo de texto guardado.
  • El compilador compilado en un archivo objeto. Si hubo errores, el compilador abortó con un mensaje de error críptico y el programador tuvo que buscar en un archivo de registro y corregir el código en el editor de texto e iniciar el compilador nuevamente.
  • Si no hay errores, el compilador produjo un archivo objeto.
  • Se inició un vinculador en la línea de comando con uno de los parámetros del archivo de objeto. El enlazador combinó el archivo objeto generado con otros archivos binarios (necesarios) y luego produjo el resultado final: un archivo ejecutable.
  • Por supuesto, esto podría ser mucho más complicado si hubiera más archivos fuente involucrados, etc. Luego, los desarrolladores elaborarían archivos por lotes elaborados para automatizar un poco el proceso.
  • Todavía hay programadores hoy en día que prefieren o usan herramientas de línea de comandos dependiendo del sistema operativo, preferencias, etc. Sin embargo, son un poco más modernas que las herramientas que mencioné anteriormente 😉

Antes de las pantallas usábamos cartas.

Cuando era un adolescente en la escuela secundaria, la escuela tenía una computadora BÁSICA que leía tarjetas marcadas con lápiz.

Las cartas eran como grandes cartas de lotería, excepto que puedes marcar el comando y el nombre de tu variable y la operación que deseas realizar. El lector de tarjetas lee las tarjetas con un lector óptico (o tal vez un lector eléctrico; el lápiz de plomo es altamente conductor de la electricidad).

Entonces, un programa era una pila de cartas.

La salida se imprimió en una impresora matricial.

No sé qué le sucedió a esa computadora: probablemente fue desechada cuando la escuela obtuvo la última tecnología, algunas computadoras de pantalla verde muy primitivas. Probablemente valga una fortuna en estos días para los coleccionistas.

Una de mis historias favoritas para contar. Cuando mi hermano estaba en la escuela secundaria a principios / mediados de la década de 1970, tenían un curso electivo en programación. Fortran era el idioma. No tenían computadora, ninguna combinación de teclas, ninguna cinta de papel, ningún hardware de comunicaciones, ningún teclado conectado a nada.

Lo que sí tenían era una gran caja de 80 tarjetas de columna perforadas previamente, con una variedad de declaraciones de Fortran. Cosas como I = I + 1; o DO (I = 1, J, 1) (Mi conocimiento de sintaxis de Fortran es mínimo, perdone los errores de sintaxis, ya se entiende la idea).

Los estudiantes diseñarían y escribirían programas para hacer cosas como enumerar números primos, números de factores, calcular factores, generar números de Fibanacci, etc. Seleccionaron las tarjetas apropiadas de la caja de tarjetas disponibles, las ensamblaron en una baraja, y todas las cubiertas de los estudiantes fueron enviadas a algún lugar donde residía el hardware, y ejecutaron todos los trabajos y enviaron las impresiones y las cubiertas de la barra verde. a la escuela secundaria

El primer bit de ‘reutilización de código’ al que estuve expuesto. Nunca escuché que esto sucediera en ningún otro lugar.