Estou fazendo um ensaio de pesquisa sobre a história das linguagens de programação e fiquei pensando: por que os programadores escreveram seus programas em cartões perfurados? As telas e teclados de computador já não existiam quando os programadores os usaram?
Sei que eles foram inventados para o uso do tear Jacquard e para controlar o design desejado, mas quando as pessoas programavam, por que decidiram escrever seus programas em um cartão, em vez de escrevê-lo em um terminal?
Seria porque, como os computadores eram muito caros, poucas pessoas tinham acesso a eles, resultando em pessoas escrevendo programas em cartões perfurados, enviando-os para uma empresa ou alguém ou alguma organização que tivesse um para executá-los e informar o resultado?
mais confiável do que qualquer scanner jamais poderia ser.
Você pode não ter uma imagem muito boa da tecnologia de computação antes de 1974.
Os sistemas de compartilhamento de tempo e multiusuários foram inventados no final dos anos cinquenta, mas eram comparativamente raros nos anos 60. A maioria dos computadores rodava em modo batch, executando um único programa por vez, sem recursos para interagir com outros usuários além do leitor de cartões, da impressora de linha e talvez de um teletipo separado para o operador do console. Terminais que você diz? Até o final dos anos 60, os terminais eletrônicos com telas de vídeo eram aparelhos exóticos e fabulosamente caros, limitados a instalações de pesquisa e trabalhos especializados como controle de tráfego aéreo e defesa nacional . Os computadores que suportavam sessões interativas geralmente usavam teletipos. Inserir um programa em um teletipo era tão desagradável quanto colocá-lo em cartões
Deixe-me expandir um pouco o problema do processamento em lote, pois é tão estranho à maneira como a maioria das pessoas usa computadores agora. Certamente seria possível, mesmo nos anos 50, escrever um programa de edição interativa que funcionasse com um teletipo. No entanto, devido ao processamento em lote, o programa de edição monopolizaria completamente o computador durante todo o tempo em que você estava sentado no teletipo editando seu programa. Como várias centenas e milhares de pessoas estariam esperando a vez de executar seus programas, você seria uma pessoa muito impopular. Você também teria cobrado vários dólares por minuto enquanto seu editor estava sendo executado. Foi muito mais econômico escrever seu programa em mãos longas, entregar o rascunho final a um operador importante, e transcreva seu programa em cartões perfurados ou fita de papel. Isso evitou desperdiçar os preciosos milissegundos da CPU esperando você digitar 'GOSUB'.
As unidades de disco rígido também foram inventadas no final dos anos cinquenta, mas eram pequenas (cerca de 1 MB), raras e caras, não algo que você dava acesso casual aos usuários. Obviamente, os usuários precisavam de algum tipo de armazenamento a longo prazo. As opções foram fita de papel, cartões perfurados e fita magnética. A fita magnética era nova e cara. A fita de papel foi usada por alguns sistemas, mas os cartões perfurados eram uma tecnologia estabelecida usada em máquinas comerciais que não são computadores, como tabuladores e classificadores desde 1928 ; portanto, muitas empresas já tinham um grande investimento em máquinas e armazenamento de cartões perfurados.
mesmo nos anos 90, recebi 5 minutos de tempo de computador por um semestre inteiro na universidade para minha tarefa de programação. Felizmente, o editor de tela não utilizava quase nenhum tempo de CPU ao digitar o código Pascal, ou não seria suficiente para durar esses meses. Todos escreviam seus programas em papel, faziam uma verificação cruzada e corrigiam a si mesmos e aos outros, usando manuais de programação em papel, depois o programa era aprovado pelo assistente de ensino, e só então era meticulosamente digitado, cada caractere era checado com o original em papel para garantir que não houve erros de digitação para enganar o compilador.
Lembro-me de uma tarefa da Ada no final dos anos 80: no final de cada sessão, o tempo de CPU que eu usava era expresso em $.
— Mouviciel 14/11
Os cartões perfurados serviam não apenas como um meio de entrada / saída, mas também como um dispositivo de armazenamento de longo prazo. Você pode executar um programa mais de uma vez recarregando o baralho de cartas para esse programa. Não havia discos rígidos, discos flexíveis, fitas magnéticas.
Por que os programadores escreveram seus programas em cartões perfurados? As telas e teclados de computador já não existiam quando os programadores os usaram?
Usamos qualquer mecanismo de E / S que nossos computadores possuam. Nos anos 60, a fita de papel era comum. Nos anos 70 (quando comecei a programar), a fita de papel estava sendo substituída por cartões perfurados.
Sim, há eram máquinas com teletypes, e também coisas espantosas chamados VDU do. Mas eles não estavam no mainstream ainda. Ambas as tecnologias foram mais comumente usadas pelos operadores de computadores (mainframe); raramente para nós.
No auge da era do cartão perfurado, a máquina mais comum era a IBM029
Nessa imagem, os alunos estão digitando seu próprio código. Os programadores profissionais geralmente escreviam seu código manualmente em folhas de codificação , formatadas de acordo com o idioma em que você estava codificando.
Enviaríamos nossas folhas de codificação para o centro de dados, onde os operadores as perfurariam (em velocidades ofuscantes) e depois passariam os cartões para o operador de verificação. Ela (90% dos funcionários do data center eram mulheres; apenas os gerentes eram homens) digitaria seu código novamente, com a furadeira configurada para o modo de verificação. A máquina tocaria se o que ela estava digitando fosse diferente do que já estava no cartão. Ao fazer isso duas vezes, eles alcançaram velocidade e precisão .
Quando você recebe suas cartas de volta, a primeira coisa a fazer é desenhar uma linha diagonal no topo de todo o baralho. Ai se você deixou cair suas cartas antes de fazer isso! Com o desenho da linha, você teve a chance de colocar suas cartas em ordem novamente depois de soltá-las.
Muita edição do programa consistiu em inserir novos cartões, que normalmente nos perfuramos, e mover os cartões existentes para outro local no baralho. Obviamente, a linha diagonal que você desenhou originalmente agora seria menos útil; portanto, depois de algumas edições, você desenharia outra linha. Quando os cartões recebiam muitas linhas ou começavam a produzir erros de leitura no leitor de cartões (os leitores mais rápidos trabalhavam a 1200 cartões por minuto ou mais, de modo que os cartões batiam cada vez que eram lidos), você enviava seu baralho de volta para o centro de dados a ser duplicado.
Pequenas edições podem ser realizadas com um soco manual.
Com a experiência, você aprenderia o código Hollerith para cada personagem e poderia digitar tão rápido quanto usar um teclado.
Se ninguém estava assistindo quando você cometeu um erro, você pode preencher o buraco errado com um "chad" que foi perfurado no cartão, esfregando-o com a miniatura para que as bordas estejam alinhadas com o restante do cartão. Esses patches costumavam se soltar durante o processo de leitura, mas costumavam funcionar pelo menos uma vez. Se o chade saísse durante o processo de leitura, causaria um "travamento", e os seguintes cartões seriam esmagados e amassados, irreconhecíveis. O leitor de cartão seria desalinhado, exigindo que um engenheiro de computação viesse consertá-lo.
No final dos anos 70, tornou-se mais comum carregar seu programa em fita magnética. A fita continha seu código em registros de 80 caracteres de comprimento fixo, e tínhamos programas "bibliotecários" para fazer a edição. Pelo que me lembro, na verdade se chamava Bibliotecário . Você codificaria outro baralho de cartas para fazer a edição ou, como era cada vez mais comum, usaria um teletipo ou VDU para fazer sua edição on-line. Uau!
A sintaxe usada para direcionar esses editores de bibliotecários era muito parecida com a sintaxe IBM-PC Edlin .
Em resumo, usamos as ferramentas que temos disponíveis. A mais nova tecnologia é sempre a mais cara e pode demorar um pouco até que todos tenham acesso a ela. Também é uma questão de conveniência e habilidades. Estou digitando isso no meu laptop, mas ao escrever um e-mail no smartphone, uso a entrada "swype", onde meu dedo faz um estranho padrão em zigue-zague na imagem do teclado e o software descobre qual palavra eu pretendo.
Boa sorte com o seu ensaio.
O peso da história ...
Vamos voltar ao tear Jacquard , um tear mecânico inventado há mais de 200 anos.
O tear era controlado por uma "cadeia de cartões", um número de cartões perfurados, entrelaçados em uma sequência contínua.
Essa era uma tecnologia conhecida e, posteriormente, o US Census Bureau usou uma máquina de contagem - a máquina Hollerith para registrar dados do censo. O qual foi coletado usando cartões perfurados.
O tabulador de Herman Hollerith consistia em componentes operados eletricamente que capturavam e processavam dados do censo pela "leitura" de furos em cartões perfurados de papel
Essas primeiras máquinas de registro evoluíram mais tarde para computadores - mas o método de entrada permaneceu o mesmo.
Telas existiam, teclados (máquinas de escrever), mas a idéia de conectá-las a um computador? Isso levou algum tempo.
Além disso, os cartões perfurados não eram apenas o programa em execução - eles também eram os dados reais - o meio de armazenamento. Não havia discos rígidos, nem fita magnética.
Estou tão velho que usei cartões perfurados (e cartões de edição de marcas "editáveis" - lápis para marcar + borracha para editar!) Na Uni, e enviamos o baralho como nossa tarefa. Não havia um teclado ou terminal à vista. E não era que há muito tempo: os anos 80.
De onde você acha que veio o uso do termo " inserir dados" (embora, veja abaixo)? Havia um título de trabalho "operador de digitação" - essencialmente um datilógrafo que estava sentado em uma máquina de perfurar cartões e "digitou" códigos / dados.
A IBM ainda se refere a um programa JCL como um "deck" e cada linha tem no máximo 80 caracteres - por quê? Como um cartão perfurado padrão tinha 80 colunas e, nos computadores originais, o operador colocava um baralho de cartas (um programa) no funil de entrada para executá-lo. O sistema operacional (MVS) foi bloqueado (devido à promessa da IBM de compatibilidade com versões anteriores) devido a uma antiga limitação de hardware.
P: Qual a diferença entre um baterista e uma bateria eletrônica?
R: Com uma bateria eletrônica, você só precisa digitar as informações uma vez.
+1 por saber do que está falando. Se eu pudesse te dar outro +1 pela piada, eu teria!
O tempo do computador era extremamente caro naquela época, então qualquer coisa que pudesse ser descarregada normalmente era.
este não parece oferecer nada substancial sobre pontos apresentados e explicados em outras 7 respostas
@gnat note que esta resposta existia antes das outras.
Notei isso antes de comentar (verifiquei isso com a classificação das respostas pelas mais antigas). Também notei que ele se parece mais com um comentário (consulte Como responder ) ... e que vai contra o aviso mostrado na parte superior: "Estamos procurando respostas longas que forneçam alguma explicação e contexto. Não apenas dê uma resposta em uma linha; explique por que sua resposta está correta, idealmente com citações. As respostas que não incluem explicações podem ser removidas ".
@gnat esta questão foi originalmente solicitado em stackoverflow e (juntamente com a minha resposta) foi transferida aqui, então perdoe a minha ignorância das regras sobre o local Eu não postar em
Os computadores não começaram como você os vê hoje, obviamente. Eles eram mais mecânicos. Um cartão perfurado é usado para representar mecanicamente números binários. Uma cabeça de leitura mecânica que se move sobre o cartão perfurado lê um "orifício" ou um "sem orifício". Essas combinações de orifícios e sem orifícios podem ser usadas para controlar o comportamento de um dispositivo mecânico. Lá, temos um programa para controlar alguma coisa!
— Sunil DS
mas por que idiomas como o FORTRAN foram usados ​​em cartões perfurados? Eu estou supondo apenas porque conseguir tempo para usar um computador provavelmente era caro e isso reduziria o custo?
A fita magnética foi usada pela primeira vez para armazenamento de dados em 1951. Os discos rígidos foram introduzidos em 1956. Os discos flexíveis foram introduzidos em 1971. O cartão perfurado teve um avanço significativo em todos esses meios de armazenamento.
Na década de 1970, as organizações de TI estavam investigando pelo menos um afastamento dos cartões perfurados. No final dos anos 80 ou início dos 90, a transição estava quase completa.
Cartões perfurados mantiveram-se pelo tempo em que existiram, quando havia outros meios de armazenamento mais eficientes disponíveis, por pelo menos duas razões.
1) Eles estavam em uso, e a inércia é algo difícil de superar. Em outras palavras, "sempre fizemos dessa maneira".
2) Custo. Hoje, uma unidade SATA de 1 TB pode custar pouco mais de US $ 50, mas uma variação da Lei de Moore tem diminuído os custos ao longo do tempo. Para comparação, uma unidade Seagate ST-506 de 5 MB em 1980 custou US $ 1.500 (cerca de US $ 4.300 hoje).
Nos primeiros dias, o sistema de computador estava em uma sala que não era acessível aos programadores e a maioria dos sistemas só podia executar um programa por vez (processamento em lote). Para executar seu programa, você o enviou por meio de cartões perfurados ou fita de papel e voltou mais tarde para obter os resultados, que normalmente eram impressos. Os programadores raramente tinham acesso direto ao 'console' e, se fossem, deveriam depurar um programa, não escrevê-lo.
Com o advento da multitarefa preemptiva por volta de 1965 (veja Multics ), muitos usuários puderam receber suporte de uma só vez através de 'terminais'. No começo, esses terminais eram do tipo teletipo e, posteriormente, telas CRT com teclados. Esses sistemas não estavam amplamente disponíveis até o início dos anos 70.
Meu primeiro computador não tinha um disco rígido. Para compilar um programa, o compilador foi lido na memória a partir de cartões perfurados e executado. Ele leu o código-fonte dos cartões perfurados e perfurou a versão compilada. Essa versão foi colocada atrás de um programa loader e lida. Foi só então que seu programa estava em execução. Oh, os bons e velhos dias;)