Inspirado por esta pergunta .
Ouvi dizer que algumas versões muito antigas dos compiladores C para computadores pessoais (acho que é por volta de 1980) residiam em dois ou três disquetes e, para compilar um programa, era necessário primeiro inserir o disco com "primeira passagem", executar a "primeira passagem", depois mude para o disco com "segunda passagem", execute-a e faça o mesmo para a "terceira passagem". Cada passe durou dezenas de minutos, para que o desenvolvedor perdesse muito tempo, mesmo no caso de um erro de digitação.
Quão realista é essa afirmação? Quais eram os números e detalhes reais?
Respostas:
Absolutamente. Eu tinha o Microsoft C (versão 1.0, acho) para um computador Zenith Z100 no início dos anos 80, entregue em vários disquetes de 5,25 "360K. O Z100 não tinha um disco rígido, então tive que trocar frequentemente de disquetes conforme alternava entre o editor, o compilador e o vinculador.Tempos de compilação e link de vários minutos não eram incomuns.Foi tão irritante que paguei US $ 500 por uma placa de expansão de memória de 2 MB (sim, megabyte) para carregar todos os arquivos em um Disco de RAM, que reduziu o tempo para 30 segundos, engraçado ... Na verdade, eu gostava de programar naqueles dias porque era divertido. Hoje é trabalho.
fonte
Provavelmente é verdade.
Nos primeiros dias da computação doméstica (para crianças / pais, não os Hobiest), as máquinas nem sequer tinham discos rígidos.
Meus pais tinham um Amstrad, o sistema operacional estava em 1 disquete e isso permitiu que você selecionasse o aplicativo a ser executado, o que pode ter exigido a troca de disquetes (ou seja, os processadores de texto estavam em outro disco), exigindo uma troca manual de volta para o disco do sistema operacional, se o aplicativo precisava de algum serviço especializado do sistema operacional.
Eu tinha uma cópia de pascal para a amstrad. Lembro que o editor estava em um disco, mas durante a compilação, foi necessário alternar entre o disco1 e o disco2 à medida que os processos de compilação continuaram (pode até ter sido necessário mudar para o disco do SO em determinados pontos dos processos (mas eu não estou tão certo fora)).
Nos bons velhos tempos, quando todo o sistema operacional cabia em um único disquete de 3,5 (mas não muito mais).
fonte
Os disquetes foram introduzidos em 1971 - (o disquete de 8 polegadas, ou seja), mas não eram populares até meados dos anos 70 (com os discos de 5,25 polegadas). C é de 1973, então acho que a resposta depende em grande parte do que você chama de "primeira versão" e de qual era o contexto de compilação. Pense nestas variáveis:
Afinal - atualmente, a compilação ainda leva alguns minutos - apenas ajuste a troca entre o seu hardware e a complexidade do programa. Somente a parte do disquete não é :-).
Leve também em consideração que muita computação nos anos 70 ainda era feita em uma construção de terminal-mainframe, portanto, talvez seja improvável alterar os disquetes (pelo menos em um contexto de produção comercial. Não sei se C foi usado como "casa" " língua).
fonte
Minha primeira incursão no aprendizado de C foi em um Commodore 64 (sim, havia um compilador para ele), no final dos anos 80. Se bem me lembro, o compilador / editor / vinculador estava em um disco e sua fonte estava em outro e você teve que trocar pelo menos uma vez durante o estágio de compilação. Claro, no C-64, você sempre trocava.
Pelo que vale, ainda tenho a caixa e os documentos desse compilador. É uma leitura nostálgica a cada dois anos.
fonte
Meu primeiro compilador C foi em um TRS-80 Modelo 4 executando CP / M (o primeiro modelo que faria isso corretamente, não tendo locais com pouca memória permanentemente mapeados para a ROM). Exigia que o disco na primeira unidade tivesse CP / M nele.
Depois que terminei com o editor que estava usando, tive que compilar, montar e vincular o programa antes de poder executá-lo. Cada um era seu próprio processo, iniciado na linha de comando. O compilador, montador e vinculador não caberiam em um disquete. (IIRC, o montador e o vinculador podem se encaixar.)
Portanto, eu teria o programa e o editor no disco do sistema CP / M e trocaria os discos do compilador e do montador / vinculador.
Eu estava olhando para um programa que me permitia executar sem um disco do sistema e tinha um plano (do qual não me lembro mais) de configurar as coisas para que eu pudesse criar um pequeno arquivo em lotes e automatizar as chamadas da linha de comando, mas eu nunca segui adiante.
Eu praticamente desisti do C depois de tentar usar esse sistema e voltei para Pascal por vários anos.
fonte
Quando eu estava no ensino médio (1989-1990), estávamos fazendo pascal em uma maçã II e era LENTO . você pode escrever um programa de 100 linhas ou mais, ao pressionar compilar, levou alguns minutos. Lembro que você teve tempo de ir ao banheiro masculino enquanto ele estava compilando antes que o programa fosse executado.
Mais ou menos na metade do caminho, consegui um Mac SE que era muito mais rápido! Acho que Pascal foi muito melhor.
fonte
O pai de um amigo meu era um programador de alto nível naquela época. Ele se cansou de esperar pelos resultados de suas compilações, dias, às vezes semana. Trabalhou principalmente em casa, escreveu o programa, perfurou os cartões, dirigiu, entregou a caixa ao operador e argumentou por um tempo que seu código era mais importante que todos os outros e esperou.
Às vezes, o código nunca chegava ao computador, meu amigo me contou a história da época em que seu pai realmente, quero dizer, REALMENTE ficou bravo com ele. Ele realmente nunca entendeu o porquê até muito mais tarde na vida, mas garoto essa caixa cheia de papéis rígidos parecia divertida ... ei, também estão cheios de buracos !!!
Um dia ele levou o argumento à gerência e acho que ele fez um bom caso, porque eles entregaram um minicomputador em sua casa. Devo mencionar que, até então, o computador ocupava a maior parte da sala de estar que, é claro, ficou fora dos limites.
Então, sim, trocar discos entre os estágios de uma compilação é uma possibilidade definitiva e confie em mim quando digo que foi uma melhoria VAST do que estava disponível antes disso !!!
Apenas espere 20 anos ou mais, posso imaginar alguém fazendo uma pergunta algo como:
É verdade que antes, eles tinham que usar teclados para digitar seu código letra por letra?
fonte
Eu não sei sobre C, mas nesse período de tempo eu tinha um compilador Microsoft Fortran que levou duas passagens. Não apenas isso, mas eu tinha um programa de página longa que era executado incorretamente (tenho certeza de que o código-fonte estava correto); então, desisti de compilar o PC completamente. Era um dia antes da internet e o PC pertencia ao meu empregador. Ainda era ótimo ter o PC, eu poderia colocar o trabalho em um disquete, levá-lo para casa e editá-lo. Então, quando cheguei ao trabalho no dia seguinte, já tinha um programa editado, em vez de anotações manuscritas.
Mesmo nos dias anteriores (iniciando a programação da primavera de 70), o compilador era um único comando JCL em um sistema operacional de mainframe de processamento em lote. É como descrito acima. Você esperou na fila por um soco de teclas e perfurou seus cartões de holerith. Então você os entregou a um operador através de uma janela. Dependendo da cor do seu PNC (basicamente um cartão perfurado contendo o número / senha da conta), você poderá recuperar os resultados de 1 a 24 horas depois. Estudantes de nível baixo tiveram a reviravolta mais tarde. Realmente foi um desafio concluir a tarefa "olá mundo" nas duas semanas previstas! Alguns anos depois, consegui um emprego de programação em meio período e podia sair à noite no centro de informática. Alguns de nós podem até alimentar o leitor de cartões. Em seguida, a rotação ocorre apenas alguns minutos / Mas você só pode fazer isso tarde da noite.
Por um longo tempo, os compiladores eram principalmente uma coisa para mainframes (máquinas de milhões de dólares pertencentes a organizações muito grandes). E os poucos minicomputadores ao redor geralmente precisavam ser programados de maneiras estranhas e complicadas. Eu usei um mini computador para digitalizar sismogramas. Demorou cerca de 10 a 15 minutos guiando a fita de papel através dele para inicializar o sistema operacional, então você faria o seu trabalho na mesa do digitalizador.
fonte
Sim com certeza. Eu não usei C nessas máquinas antigas de CP / M, usei o CB-80. BASIC compilado. (E sim, foi horrível). Em um Heath / Zenith Z-89 com 2 unidades de disquete, cada uma com 89K.
A compilação em disco único foi tão horrível que foi um caso de esquecê-lo. Muita troca de disco. 2 unidades de disquete foi um luxo! Fonte em um, compilador no outro. Faça uma compilação e vá embora para tomar uma xícara de chá enquanto a máquina fica "clang clang clang" enquanto os disquetes estão engatados e desengatados e as cabeças balançam.
O chefe comprou um disco rígido de 5 MB com cerca de 18x18x8 polegadas, alimentado separadamente e conectado à parte traseira do H89 com um cabo de fita com cerca de 1 metro de comprimento.
Oh a velocidade! e a capacidade! com 5 MB de armazenamento.
fonte
não sei sobre C (meu primeiro compilador C foi executado a partir de um disco rígido e não foi rápido), mas o primeiro Macro Assembler que eu usei (C64) exigiu comutação de disquete (uma para carregar o assembler, a outra para carregar o código) levou mais de 20 minutos para construir o sistema e, após alguns meses de desenvolvimento, a unidade de disquete e a placa-mãe superaqueceram e morreram.
fonte
Faculdade em 1988 = Fortran em um PC, 8088 512K (isso é um K !!) de memória ram e uma única unidade de disquete A compilação levou 20 a 30 minutos, não precisei trocar de disquetes porque tinha uma daquelas novas de 720K.
Um Sun3 (68030 ram de 1Mb) e terminais 24 vt100 para toda a classe.
fonte
Antes do meu tempo, suponho. Minha primeira programação "real" (em PCs, pelo menos) foi COBOL. Naquela época, usamos computadores IBM. Eles tinham 2 unidades de disquete de 360k; um tinha o compilador e o outro o seu código-fonte.
Eu sei que mesmo meus projetos simples da faculdade levaram literalmente 15 minutos para compilar a execução nesses disquetes - eu corria para a cafeteria para tomar café enquanto estava compilando. Então, para o projeto final, trabalhei nele na casa dos meus amigos. Ele acabara de comprar uma máquina nova com esse disco chamado disco rígido - 10 megabytes! Nosso projeto foi compilado em menos de um minuto. Isso me surpreendeu completamente.
fonte
Eu tive que fazer a dança de disquete no meu antigo Mac de 128K para várias aplicações, por isso não duvido disso por um minuto, apesar de não poder dar detalhes. Não ficaria surpreso se isso não fosse parte do motivo pelo qual os intérpretes do BASIC eram tão onipresentes nos primeiros computadores pessoais (sem necessidade de várias passagens, tabelas de símbolos etc.).
fonte