20 Maiores Invenções em Programação de Computadores
Em uma das conversas que tive com nosso editor sênior, me fizeram a pergunta, “Como o primeiro programador programador?” Isto levou a uma discussão sobre Babbage e Ada Lovelace, no final do qual, fui designado para pesquisa como isto tudo começou - sendo os muitos primeiros na história da computação.
Eu procurei livros e sites e fui recebido com muitas revelações: Babbage não é tecnicamente o inventor do computador, o FORTRAN definitivamente não foi a primeira linguagem de programação de alto nível e costumávamos ter pontas para telas CRT (na verdade).
Também fiquei surpreso ao descobrir como as guerras essenciais estavam impulsionando o rápido progresso do desenvolvimento de computadores, além da contribuição de muitas mulheres que nossos livros didáticos escolheram negligenciar. Assim, para preencher as lacunas na história de computadores e programas, eu juntei 20 primeiros no mundo da computação, desde bolas de boliche até WW2 e tudo o que há entre.
1. Primeiro Computador: “Motor de diferença” (1821)
o “Motor de Diferença” foi um computador mecânico proposto para ser usado na saída de tabelas matemáticas. Encomendado pelo governo britânico, Charles Babbage (também conhecido como Father of Computer) começou a trabalhar nele, mas devido ao seu alto custo de produção, o financiamento foi interrompido e a máquina nunca foi concluída.
2. Primeiro Computador de Uso Geral: “Motor analítico” (1834)
o “Motor analítico” era também um computador mecânico proposto, cuja entrada deveria ser cartões perfurados, com programas e dados perfurados neles. Outra ideia de Charles Babbage, esta máquina também não foi concluída.
3. Primeiro Programa de Computador: algoritmo para computar os números de Bernoulli (1841 - 1842)
Ada Lovelace (a primeira programadora de computadores do mundo) começou a traduzir os registros do matemático italiano Luigi Menabrea no mecanismo analítico de Babbage em 1841. Durante a tradução, interessou-se pela máquina e deixou notas com sua tradução. Uma das notas - nota G, continha o algoritmo para calcular os números de Bernoulli pelo mecanismo analítico, considerado o primeiro programa de computador.
4. Primeiro Computador Programável de Trabalho: Z3 (1941)
Konrad Zuse (o inventor dos computadores) já tinha um computador mecânico em funcionamento Z1, mas funcionava apenas alguns minutos de cada vez. O uso de uma tecnologia diferente - relés, levou a Z2 e, eventualmente, Z3. Z3 era um computador eletromagnético para o qual o programa e os dados eram armazenados em fitas externas perfuradas. Foi um projeto secreto do governo alemão e posto em uso pelo Instituto Alemão de Pesquisa de Aeronaves. A máquina original foi destruída no bombardeio de Berlim em 1943.
5. Primeiro Computador Eletrônico: Atanasoff-Berry Computer (ABC) (1942)
Criado por John Vincent Atanasoff e Clifford Berry, o então chamado Atanasoff-Berry Computer ou ABC foi usado para encontrar a solução para equações lineares simultâneas. Foi o primeiro computador que usou binário para representar dados e chaves eletrônicas em vez de mecânicas. O computador, no entanto, não era programável.
6. Primeiro Computador Eletrônico Programável: Colossus (1943)
O Colossus criado por Tommy Flowers, foi uma máquina criada para ajudar os britânicos a decodificar mensagens alemãs que foram criptografadas pela cifra de Lorenz, na Segunda Guerra Mundial. Foi programado por interruptores e tomadas eletrônicas. Colossus trouxe tempo para decifrar as mensagens criptografadas de semanas para meras horas.
7. Primeiro Computador Eletrônico Programável de Uso Geral: ENIAC (1946)
Financiado pelo Exército dos EUA, ENIAC ou Integrador Numérico Eletrônico E Computador foi desenvolvido na Escola Moore de Engenharia Elétrica da Universidade da Pensilvânia por John Mauchly & J. Presper Eckert. O ENIAC tinha 150 pés de largura e poderia ser programado para realizar operações complexas como loops; a programação foi feita alterando seus comutadores e cabos eletrônicos. Usou leitores de cartões para entrada e punções de cartões para saída. Ajudou com cálculos para viabilidade da primeira bomba de hidrogênio do mundo.
8. Primeiro Trackball: (1946/1952)
Por que os dois anos para o primeiro trackball? Permita-me explicar.
O primeiro ano foi o ano dado por um Ralph Benjamin, que afirmou ter criado o primeiro trackball do mundo quando estava trabalhando em um sistema de monitoramento para aeronaves de baixa altitude em 1946. A invenção descrita por ele usou uma bola para controlar as coordenadas XY. de um cursor na tela. O design foi patenteado em 1947, mas nunca foi lançado porque é considerado um “segredo militar”. Os militares optaram pelo joystick.
O segundo competidor do primeiro trackball do mundo, usado no sistema DATAR da Marinha Canadense em 1952, foi inventado por Tom Cranston e col. Este projeto de trackball tinha um mock up que utilizava uma bola de boliche canadense “rolamentos de ar” (veja a imagem abaixo).
9. Primeiro computador do programa armazenado: SSEM (1948)
Para superar as deficiências da memória da linha de atraso, Frederic C. Williams e Tom Kilburn desenvolveram o primeiro dispositivo de armazenamento digital de acesso aleatório baseado no CRT padrão. O SSEM (Manchester Máquina Experimental de Pequena Escala) foi usado para implementar esse dispositivo de armazenamento para uso prático. Os programas foram inseridos em formato binário usando 32 switches e sua saída foi um CRT.
10. Primeira Linguagem de Programação de Alto Nível: Plankalkül (1948)
Embora Konrad Zuse tenha começado a trabalhar no Plankalkül desde 1943, foi somente em 1948, quando publicou um artigo sobre o assunto. Não atraiu muita atenção infelizmente. Levaria quase três décadas para que um compilador fosse implementado para ele, um criado por um Joachim Hohmann em uma dissertação.
11. Primeiro Montador: “Pedidos iniciais” para EDSAC (1949)
Assembler é um programa que converte mnemônicos (baixo nível) em representação numérica (código de máquina). Os pedidos iniciais no EDSAC (Calculadora Automática de Armazenamento Eletrônico de Atraso) foi o primeiro de tal sistema. Ele foi usado para montar programas a partir da entrada da fita de papel na memória e executar a entrada. Os programas estavam em códigos mnemônicos ao invés de códigos de máquina, fazendo “código inicial” o primeiro montador já processando um código de programa simbólico de baixo nível em código de máquina.
12. Primeiro Computador Pessoal: “Simon” (1950)
“Simon” por Edmund Berkeley foi o primeiro computador digital acessível que poderia realizar quatro operações: adição, negação, maior que, e seleção. A entrada foi papel perfurado e o programa foi gravado em fita de papel. A única saída foi através de cinco luzes.
13. Primeiro compilador: A-0 para UNIVAC 1 (1952)
Um compilador é um programa que converte linguagem de alto nível em código de máquina. O sistema A-0 era um programa criado pelo lendário Grace Hopper para converter um programa especificado como uma seqüência de sub-rotinas e argumentos em código de máquina. O A-0 mais tarde evoluiu para A-2 e foi lançado para os clientes com seu código-fonte, tornando-o possivelmente o primeiro software de código aberto.
14. Primeiro Autocode: Autocode de Glennie (1952)
Um Autocode é uma linguagem de programação de alto nível que usa um compilador. O primeiro autocódigo e seu compilador apareceram na Universidade de Manchester para tornar a programação da máquina Mark 1 mais inteligível. Foi criado por Alick Glennie, daí o nome Autocode de Glennie.
15. Primeiro computador de exibição gráfica em tempo real: AN / FSQ-7 pela IBM (1951)
O AN / FSQ-7 foi baseado em um dos primeiros computadores que mostravam saída em tempo real, o Whirlwind. Tornou-se a tábua de salvação para o sistema de defesa aérea dos EUA conhecido como Semi-Automatic Ground Environment (SAGE). Os computadores mostravam pistas para os alvos e mostravam automaticamente quais defesas estavam dentro do alcance. AN / FSQ-7 tinha 100 consoles de sistema; aqui está uma (imagem abaixo), o OA-1008 Situation Display (SD), com uma arma leve usada para selecionar alvos na tela para mais informações.
16. Primeira Linguagem de Programação de Alto Nível Amplamente Utilizada: FORTRAN (1957)
Se você verificar os livros, você encontrará o FORTRAN listado como a primeira linguagem de programação de alto nível. Pensado por John W. Backus, que não gostava de escrever programas e decidiu criar um sistema de programação para ajudar a tornar o processo muito mais fácil, o uso do FORTRAN reduziu bastante o número de instruções de programação necessárias para colocar uma máquina em funcionamento. Em 1963, mais de 40 compiladores FORTRAN já estavam disponíveis.
17. Primeiro Rato (1964)
Foi durante uma sessão de conferência em computação gráfica que a idéia de um mouse chegou a Douglas Engelbart em 1964. Ele inventou um dispositivo com um par de pequenas rodas (uma gira na horizontal a outra verticalmente) que podem ser usadas para mover uma cursor em uma tela. Um protótipo (veja abaixo) foi criado pelo seu engenheiro chefe, Bill English, mas tanto o inglês quanto o Engelbart nunca receberam royalties pelo design, porque tecnicamente, ele pertencia ao SRI, o empregador de Engelbert..
18. Primeiro Desktop Desktop Comercial: Programma 101 (1965)
Também conhecido como Perottina, o Programma 101 foi o primeiro PC comercial do mundo. Poderia realizar adição, subtração, multiplicação, divisão, raiz quadrada, valor absoluto e fração. Por tudo o que podia fazer, custava US $ 3.200 (era um momento bem diferente) e conseguiu vender 44.000 unidades. Perottina foi inventada por Pier Giorgio Perotto e produzida pela Olivetti, uma fabricante italiana.
19. Primeira tela sensível ao toque (1965)
Não parece muito, mas esta foi a primeira tela sensível ao toque que o mundo já conheceu. É um painel touchscreen capacitivo, sem sensibilidade de pressão (há contato ou nenhum contato) e registra apenas um único ponto de contato (em oposição a multitouch). O conceito foi adotado para uso pelos controladores de tráfego aéreo no Reino Unido até a década de 1990.
20. Primeira Linguagem de Programação Orientada a Objetos: Simula (1967)
Baseado no conceito de construção de classes de C. A. R. Hoare, Ole-Johan Dahl e Kristen Nygaard atualizaram “SIMULA I” linguagem de programação com objetos, classes e subclasses. Isso resultou na criação do SIMULA 67, que se tornou a primeira linguagem de programação orientada a objetos.
Pensamentos finais
Por mais que este post tenha sido sobre o que poderíamos aprender sobre os muitos primeiros da história da computação, é difícil mergulhar na história em si. Como resultado, pelo menos para mim, nós tornar-se mais apreciativo sobre o trabalho feito por gerações antes do nosso, e podemos entender melhor o que impulsiona as muitas mudanças que moldam o mundo em que vivemos hoje.
Espero que este post te inspire tanto quanto me inspirou. Compartilhe seus pensamentos sobre estes primeiros, e se eu perdi algum, o que tenho certeza que fiz, adicione-os nos comentários.