Criou o código que levou os humanos à lua, basicamente inventou o conceito de software
Margaret Hamilton não deveria ter inventado o conceito moderno de software e ajudado a levar o homem à lua.
Era 1960, um momento, digamos, pouco propício para as mulheres. Elas definitivamente não eram encorajadas a procurar trabalhos altamente técnicos. Apesar disso, Margaret, com 24 anos e uma graduação em matemática, conseguiu um emprego como programadora no famoso MIT (Instituto de Tecnologia de Massachusetts).
O plano, no entanto, era que ela trabalhasse apenas por três anos, para apoiar o marido enquanto ele cursava a Faculdade de Direito na Universidade de Harvard. Depois disso, seria a vez dela, que queria fazer uma pós-graduação em matemática.
Tudo mudou quando o programa espacial Apollo apareceu, e Margaret conduziu um feito épico de engenharia que ajudou a mudar completamente o futuro.
A indústria do software deve muito à programadora Margaret
Margaret levava sua filha Lauren ao laboratório nos fins de semana e à noite. Enquanto a garotinha de 4 anos dormia no escritório, sua mãe programava códigos que seriam adicionados ao computador de comando das missões Apollo.
Como é até hoje, naquela época “os caras” dominavam a área de tecnologia e engenharia. Margaret era uma exceção, mas ela afirma que, no laboratório, sentia que pertencia à “turma”. Ela costumava até mesmo sair com os colegas para beber.
Assim, pode ser surpreendente para os fabricantes de software de hoje descobrir que a fundadora do seu clube dos bolinhas foi, de fato, uma mãe.
Fundando um conceito
No Laboratório de Instrumentação onde Margaret trabalhava, ela e seus colegas desenvolviam ideias centrais em programação a fim de escrever o código para o primeiro computador portátil do mundo.
A matemática tornou-se especialista em programação de sistemas e ganhou argumentos técnicos importantes. “Quando comecei a trabalhar, ninguém sabia o que era que estávamos fazendo. Não havia cursos sobre isso. Ninguém ensinava isso”, conta.
Esta foi uma década antes do surgimento da Microsoft e quase 50 anos antes de Marc Andreessen observar que o software está “comendo o mundo”. Aliás, naquela época, ninguém pensava em termos de software. O documento original que estabelecia os requisitos de engenharia da missão Apollo nem sequer menciona essa palavra.
Só no desenrolar do projeto é que a centralidade do software no cumprimento da missão começou a ficar clara.
O nascimento de um gigante
Em 1965, Margaret tornou-se responsável pelo software de voo a bordo dos computadores Apollo. A cientista se dedicou ao máximo. Uma vez, depois de uma festa, ela correu de volta para o laboratório de informática no meio da noite para corrigir uma parte de um código que ela de repente percebeu que era falha.
“Eu estava sempre imaginando manchetes nos jornais, apontando para o que aconteceu, apontando para mim”, revela.
Em meados de 1968, mais de 400 pessoas estavam trabalhando no software das missões Apollo. Conforme Margaret e seus colegas programavam espaçonaves, também incubavam uma indústria que geraria 400 bilhões de dólares no futuro.
A importância para a missão Apollo
Os voos Apollo tinham duas máquinas quase idênticas: uma utilizada no módulo lunar Eagle, que de fato pousou na lua, e outra no módulo de comando que levava e trazia os astronautas de e para a Terra.
Esses computadores eram portáteis, ao contrário de qualquer outro. Concebidos pelos engenheiros do MIT, como Hal Laning e Dick Batton, foram uns dos primeiros a utilizar circuitos integrados em vez de transistores.
O sistema armazenava mais de 12.000 “palavras” em suas memórias permanentes e tinha 1.024 palavras em sua memória temporária, apagável.
“Foi a primeira vez que um computador importante tinha sido posto em uma nave espacial e recebido muita responsabilidade para a missão”, disse Don Eyles, que trabalhou no código do módulo lunar. “Nós mostramos que isso poderia ser feito. Fizemos isso no que hoje parece uma quantidade incrivelmente pequena de memória e uma velocidade de computação muito lenta”.
Sem esse computador, Neil Armstrong não teria chegado na lua. E sem o software escrito por Margaret, Don e a equipe de engenheiros do MIT, o computador teria sido um fracasso.
Software com papel crítico no pouso
Isso ficou claro em 20 de julho de 1969, apenas alguns minutos antes de Apollo 11 pousar no Mar da Tranquilidade. Por causa do que o engenheiro de software Don Eyles denominou um “erro de documentação”, o computador Apollo começou a cuspir mensagens de erro preocupantes durante esta fase crítica da missão.
Foi neste momento que os argumentos técnicos de Margaret e seus colegas salvaram o dia. As mensagens de erro apareceram porque o computador estava sobrecarregado com uma série de cálculos desnecessários quando, na verdade, deveria se focar em pousar.
Quando o software percebeu que não tinha espaço suficiente para realizar todas as funções, passou por seu processo de detecção de erros e priorizou o que deveria: o pouso na superfície da lua.
Visionária
Um dia, Lauren estava brincando com o visor e o teclado do simulador do módulo lunar, e uma mensagem de erro apareceu. A filha de Margaret tinha parado o funcionamento do módulo, lançando sem querer um programa de pré-lançamento chamado P01, enquanto o simulador estava em pleno voo. Não havia nenhuma razão pela qual um astronauta faria isso, mas, mesmo assim, Margaret queria adicionar um código para evitar o acidente. Essa ideia foi rejeitada pela NASA.
“Nos haviam dito muitas vezes que os astronautas não cometiam erros”, lembra. “Eles foram treinados para ser perfeitos”.
Então, ao invés disso, ela apenas adicionou uma nota para os engenheiros e astronautas avisando para não selecionarem P01 durante o voo. Mas Margaret ainda queria colocar um código de verificação de erros para impedir que isto bagunçasse os sistemas. Seus superiores hierárquicos acharam excessivo. “Todo mundo disse que isso nunca iria acontecer”, diz.
Mas aconteceu. Durante a missão Apollo 8, o astronauta James Lovell inadvertidamente selecionou P01 durante o voo. Margaret estava na sala de conferências do segundo andar no Laboratório de Instrumentação quando descobriu que o programa tinha eliminado todos os dados de navegação. Sem esses dados, o computador Apollo não seria capaz de trazer os astronautas de volta para casa. Margaret e os programadores do MIT passaram nove horas bolando um plano com novos dados de navegação. Felizmente, eles conseguiram trazer os astronautas para a Terra.
Pioneira
Margaret e seu trabalho estabeleceram um conceito pioneiro de engenharia de software, que, como sabemos agora, foi muito além de levar o homem à lua.
Na década de 1970, ela saiu da NASA e do programa Apollo e passou a trabalhar em diversas empresas de software. Hoje, sua companhia Hamilton Technologies fica a poucos quarteirões do MIT, onde sua carreira começou – e onde ela pode ajudar a revolucionar toda uma área da tecnologia. [Wired]
4 comentários
Também foi uma mulher (nome?) que criou o software para o ENIAC, o computador à válvula usado no projeto da primeira bomba atômica.
O ENIAC foi usado no Projeto Manhattan? Que eu saiba ele foi usado para calcular trajetórias balísticas…
Pow, finalmente uma foto atual da moça. Uma digna escovadora de bits.
Muito legal, faltou aqui a imagem dela com os cálculos que ela fez a mão das trajetórias da nave, um pilha de cadernos do tamanho dela.