¿Por qué se utilizaron las tarjetas perforadas para la programación?

8

Estoy haciendo un ensayo de investigación sobre la historia de los lenguajes de programación, y me preguntaba, ¿por qué los programadores alguna vez escribieron sus programas en tarjetas perforadas? ¿Ya no existían las pantallas y los teclados de las computadoras cuando los programadores los usaron?

Sé que se inventaron por primera vez para el uso del telar Jacquard y para controlar el diseño deseado, pero cuando las personas programaron, ¿por qué decidieron escribir sus programas en una tarjeta en lugar de hacerlo en un terminal?

¿Fue porque, dado que las computadoras eran muy caras, no muchas personas tenían acceso a ellas, lo que hacía que las personas escribieran programas en tarjetas perforadas y las enviaran a una empresa o alguien o alguna organización que tenía una para ejecutarlas y decirles el resultado?


fuente
más confiable que cualquier escáner podría ser.
Ratchet freak

Respuestas:

24

Es posible que no tenga una muy buena imagen de la tecnología informática anterior a 1974.

Los sistemas de tiempo compartido y multiusuario se inventaron a fines de los años cincuenta, pero fueron relativamente raros durante los años 60. La mayoría de las computadoras funcionaban en modo por lotes, ejecutando un solo programa a la vez, sin facilidades para interactuar con usuarios que no sean el lector de tarjetas, la impresora de línea y tal vez un teletipo separado para el operador de la consola. ¿Terminales que dices? Hasta finales de los años 60, los terminales electrónicos con pantallas de video eran dispositivos exóticos, fabulosamente caros, limitados a instalaciones de investigación y trabajos especializados como control de tráfico aéreo y defensa nacional . Esas computadoras que admitían sesiones interactivas generalmente usaban teletipos. Entrar en un programa en un teletipo fue tan desagradable como pincharlo en tarjetas

Permítanme ampliar un poco el problema del procesamiento por lotes, ya que es muy extraño a la forma en que la mayoría de la gente usa las computadoras ahora. Ciertamente, incluso en los años 50 habría sido posible escribir un programa de edición interactivo que hubiera funcionado con un teletipo. Sin embargo, debido al procesamiento por lotes, el programa de edición habría monopolizado por completo la computadora todo el tiempo que estuvo sentado en el teletipo editando su programa. Dado que varios cientos de miles de personas habrían estado esperando su turno para ejecutar sus programas, usted hubiera sido una persona muy impopular. También se le habrían cobrado varios dólares por minuto mientras se ejecutaba su editor. Fue mucho más rentable escribir su programa a mano, entregar el borrador final a un operador clave, y permita que transcriban su programa en tarjetas perforadas o cinta de papel. Eso evitó desperdiciar los preciosos milisegundos de la CPU esperando que escribas 'GOSUB'.

Las unidades de disco duro también se inventaron a fines de los años cincuenta, pero eran pequeñas (alrededor de 1 mb), raras y caras, no es algo a lo que les da acceso casual a los usuarios. Obviamente, los usuarios necesitaban algún tipo de almacenamiento a largo plazo. Las opciones fueron cinta de papel, tarjetas perforadas y cinta magnética. La cinta magnética era nueva y costosa. Algunos sistemas usaban cinta de papel, pero las tarjetas perforadas eran una tecnología establecida utilizada en máquinas comerciales que no son computadoras como tabuladores y clasificadores desde 1928 , por lo que muchas empresas ya tenían una gran inversión en maquinaria y almacenamiento de tarjetas perforadas.

Charles E. Grant
fuente
55
Incluso en la década de 1990 me dieron 5 minutos de tiempo de computadora durante un semestre completo en la universidad para mi tarea de programación. Afortunadamente, el editor de pantalla usó casi nada de tiempo de CPU al escribir el código Pascal, o no habría sido suficiente para durar esos meses. Todos escribieron sus programas en papel, realizaron verificaciones cruzadas y se corrigieron a sí mismos y a otros utilizando manuales de programación en papel, luego el asistente de enseñanza autorizó la entrada del programa, y ​​solo entonces se tipeó meticulosamente, cada personaje se verificó dos veces con el documento original para asegurarse de que no haya errores tipográficos para engañar al compilador.
Jingnt
2
Recuerdo una asignación de Ada a fines de la década de 1980: al final de cada sesión, el tiempo de CPU que había usado se expresó en $.
Mouviciel
14

Las tarjetas perforadas sirven no solo como medio de entrada / salida, sino también como un dispositivo de almacenamiento a largo plazo. Puede ejecutar un programa más de una vez recargando el mazo de cartas para ese programa. No había discos duros, ni disquetes, ni cintas magnéticas.

Ferruccio
fuente
14

¿Por qué los programadores escribieron sus programas en tarjetas perforadas? ¿Ya no existían las pantallas y los teclados de las computadoras cuando los programadores los usaron?

Usamos cualquier mecanismo de E / S que tengan nuestras computadoras. En la década de 1960, la cinta de papel era común. En la década de 1970 (cuando comencé a programar), la cinta de papel estaba siendo reemplazada por tarjetas perforadas.

Sí, no eran máquinas con teletipos, y también las cosas sorprendentes llamados VDU. Pero todavía no estaban en la corriente principal. Ambas tecnologías fueron utilizadas más comúnmente por los operadores de computadoras (mainframe); rara vez para nosotros

En la cima de la era de las tarjetas perforadas, la máquina más común era la IBM029

Ver cs.uwaterloo.ca/40th/Chronology/1967.shtml

En esa imagen, los estudiantes están perforando su propio código. Los programadores profesionales escribieron más comúnmente su código a mano en hojas de codificación , formateadas de acuerdo con el idioma en el que codificaban.

Ver en.wikipedia.org/wiki/Fortran

Enviamos nuestras hojas de codificación al centro de datos, donde los operadores las perforarían (a velocidades cegadoras) y luego pasarían las tarjetas al operador de verificación. Ella (el 90% del personal del centro de datos eran mujeres; solo sus gerentes eran hombres) escribiría su código nuevamente, con la máquina perforadora configurada para verificar el modo. La máquina explotaría si lo que estaba escribiendo era diferente de lo que ya estaba en la tarjeta. Al hacerlo dos veces, lograron velocidad y precisión .

Cuando recuperaste tus cartas, lo primero que harías era dibujar una línea diagonal en la parte superior de todo el mazo. ¡Ay de ti si dejas caer tus cartas antes de hacerlo! Con la línea dibujada, tenía la posibilidad de volver a poner en orden sus cartas después de soltarlas.

Una gran cantidad de edición de programas consistió en insertar nuevas tarjetas, que generalmente nos golpearíamos, y mover las tarjetas existentes a otro lugar en el mazo. Obviamente, la línea diagonal que dibujaste originalmente ahora sería menos útil, así que después de algunas ediciones, dibujarías otra línea. Cuando las tarjetas recibían demasiadas líneas o comenzaban a producir errores de lectura en el lector de tarjetas (los lectores más rápidos trabajaban a 1200 tarjetas por minuto o más, por lo que las tarjetas recibían golpes cada vez que se leían), enviaba su mazo de regreso al centro de datos que se duplicará.

Se pueden realizar pequeñas ediciones usando un golpe manual.

ingrese la descripción de la imagen aquí

Con experiencia, aprendería el código Hollerith para cada personaje y podría golpear tan rápido como usar un teclado.

Si nadie mayor estaba mirando cuando cometió un error, podría llenar el agujero equivocado con un "chad" que había sido sacado de la tarjeta, frotándolo con su miniatura para que sus bordes se enreden con el resto de la tarjeta. Tales parches a menudo se soltaron durante el proceso de lectura, pero a menudo funcionaron al menos una vez. Si el chad saliera durante el proceso de lectura, causaría un "bloqueo", y la (s) siguiente (s) tarjeta (s) serían aplastadas y arrugadas más allá del reconocimiento. El lector de tarjetas no se alinearía, lo que requeriría que un ingeniero informático viniera y lo arreglara.

A fines de la década de 1970, se volvió más común cargar su programa en una cinta magnética. La cinta contenía su código en registros de 80 caracteres de longitud fija, y teníamos programas "bibliotecarios" para hacer la edición. Como recuerdo, en realidad uno se llamaba Bibliotecario . Codificaría otro mazo de cartas para hacer la edición, o como se estaba volviendo más común, use un teletipo o VDU ​​para hacer su edición en línea. ¡Guauu!

La sintaxis utilizada para dirigir esos editores de bibliotecarios era muy parecida a la sintaxis Edlin de IBM-PC .

En resumen, utilizamos las herramientas que tenemos disponibles. La tecnología más nueva es siempre la más cara, y puede pasar un tiempo antes de que todos tengan acceso a ella. También es una cuestión de conveniencia y habilidades. Estoy escribiendo esto en mi computadora portátil, pero cuando escribo un correo electrónico en mi teléfono inteligente, uso la entrada "swype", donde mi dedo hace un extraño patrón de zigzag sobre una imagen del teclado y el software resuelve qué palabra tengo la intención.

Buena suerte con tu ensayo.

andy256
fuente
9

El peso de la historia ...

Volvamos al telar Jacquard , un telar mecánico inventado hace más de 200 años.

El telar estaba controlado por una "cadena de cartas", una serie de cartas perforadas, unidas en una secuencia continua.

Tarjetas de telar jacquard

Esta era una tecnología conocida y más tarde la Oficina del Censo de los EE. UU. Utilizó una máquina de conteo, la máquina Hollerith para contar los datos del censo. El cual fue recolectado usando tarjetas perforadas.

El tabulador de Herman Hollerith consistió en componentes operados eléctricamente que capturaron y procesaron datos censales "leyendo" agujeros en tarjetas perforadas de papel

Máquina de lector de tarjetas Hollerith

Estas primeras máquinas de conteo evolucionaron más tarde en computadoras, pero el método de entrada siguió siendo el mismo.

Las pantallas existieron, los teclados existen (máquinas de escribir), pero ¿la idea de conectarlos a una computadora? Eso tomó algo de tiempo.

Además, las tarjetas perforadas no eran solo el programa en ejecución, sino también los datos reales, el medio de almacenamiento. No había discos duros, ni cinta magnética.

Oded
fuente
5

Soy tan viejo que he usado tarjetas perforadas (y tarjetas de sentido de marca "editables" - ¡lápiz para marcar + borrador para editar!) En Uni, y enviamos el mazo de cartas como nuestra tarea. No había un teclado o terminal a la vista. Y no era que hace mucho tiempo: los años 80.

¿De dónde crees que vino el uso del término " perforar datos" (aunque, ver más abajo)? Había un título de trabajo como "operador de perforación clave", esencialmente un mecanógrafo que se sentaba en una máquina perforadora de tarjetas y "perforaba" en código / datos.

IBM todavía se refiere a un programa JCL como un "mazo", y cada línea tiene un máximo de 80 caracteres, ¿por qué? Debido a que una tarjeta perforada estándar tenía 80 columnas, y en sus computadoras originales, el operador colocaría una baraja de cartas (un programa) en la tolva de entrada para ejecutarla. El sistema operativo (MVS) estaba bloqueado (debido a la promesa de compatibilidad con versiones anteriores de IBM) a una antigua limitación de hardware.


P: ¿Cuál es la diferencia entre un baterista y una caja de ritmos?

R: Con una caja de ritmos, solo tiene que perforar la información una vez.

bohemio
fuente
1
+1 por saber de qué estás hablando. Si hubiera podido darte otro +1 por el chiste, ¡lo habría hecho!
John R. Strohm
4

El tiempo de la computadora era extremadamente costoso en ese entonces, por lo que cualquier cosa que pudiera descargarse normalmente lo era.

Dave
fuente
De acuerdo, esto tiene sentido.
Esto no parece ofrecer nada sustancial sobre los puntos hechos y explicados en otras 7 respuestas
mosquito
@gnat observe que esta respuesta existía antes que las otras.
Dave
Me di cuenta de eso antes de comentar (verifiqué esto ordenando las respuestas por las más antiguas). También noté que se lee más como un comentario (ver Cómo responder ) ... y que va en contra del aviso que se muestra en la parte superior: "Estamos buscando respuestas largas que brinden alguna explicación y contexto. No solo dé una respuesta de una línea; explique por qué su respuesta es correcta, idealmente con citas. Las respuestas que no incluyen explicaciones pueden eliminarse ".
mosquito
@gnat esta pregunta fue publicada originalmente en stackoverflow y (junto con mi respuesta) nos pasaron aquí, así que perdona mi ignorancia de las reglas en el sitio no lo publique en
Dave
3

Las computadoras no comenzaron como las ves hoy, obviamente. Eran más mecánicos. Una tarjeta perforada se usa para representar mecánicamente números binarios. Un cabezal de lectura mecánico que se mueve sobre la tarjeta perforada lee un "hoyo" o un "no hoyo". Estas combinaciones de agujeros y ningún agujero pueden usarse para controlar el comportamiento de un dispositivo mecánico. ¡Ahí tenemos un programa para controlar algo!

Sunil DS
fuente
pero ¿por qué se usaron idiomas como FORTRAN en las tarjetas perforadas? Supongo que solo porque tener tiempo para usar una computadora probablemente sea costoso y esto reduciría el costo.
1

La cinta magnética se utilizó por primera vez para el almacenamiento de datos en 1951. Las unidades de disco duro se introdujeron en 1956. Las unidades de disquete se introdujeron en 1971. La tarjeta perforada tuvo una ventaja importante en todos estos medios de almacenamiento.

En la década de 1970, las organizaciones de TI al menos estaban investigando un alejamiento de las tarjetas perforadas. A fines de la década de 1980 o principios de la década de 1990, la transición estaba casi completa.

Las tarjetas perforadas se mantuvieron durante tanto tiempo como lo hicieron, cuando había otros medios de almacenamiento más eficientes disponibles, al menos por un par de razones.

1) Estaban en uso, y la inercia es algo difícil de superar. En otras palabras, "siempre lo habíamos hecho de esta manera".

2) Costo. Una unidad SATA de 1 TB se puede obtener por un poco más de $ 50 hoy, pero una variación en la Ley de Moore ha reducido los costos con el tiempo. En comparación, una unidad Seagate ST-506 de 5 MB en 1980 costó $ 1,500 (aproximadamente $ 4,300 hoy).

Kennah
fuente
1

En los primeros días, el sistema informático estaba en una sala que no era accesible para los programadores y la mayoría de los sistemas solo podían ejecutar un programa a la vez (procesamiento por lotes). Para ejecutar su programa, lo envió a través de tarjetas perforadas o cinta de papel y regresó más tarde para obtener sus resultados, que normalmente era una impresión. Los programadores rara vez tenían acceso directo a la 'consola', y si lo fueran, debían depurar un programa, no escribirlo.

Con el advenimiento de la multitarea preventiva alrededor de 1965 (ver Multics ), muchos usuarios podrían recibir soporte a la vez a través de 'terminales'. Al principio, estos terminales eran teletipos como máquinas y luego pantallas CRT con teclados. Estos sistemas no estuvieron ampliamente disponibles hasta principios de los años setenta.

Mi primera computadora no tenía un disco duro. Para compilar un programa, el compilador se leía en la memoria de tarjetas perforadas y se ejecutaba. Leyó el código fuente de las tarjetas perforadas y la versión compilada. Esa versión se colocó detrás de un programa cargador y se leyó. Fue solo entonces cuando su programa se estaba ejecutando. Oh los buenos viejos tiempos;)

dbasnett
fuente