O seu Código Tem Humanos na Lua – e Software Inventado a Si Mesmo

Margaret Hamilton não era suposto inventar o conceito moderno de software e homens terrestres na lua. Era 1960, não uma época em que as mulheres eram encorajadas a procurar trabalho técnico de alta potência. Hamilton, de 24 anos, com uma graduação em matemática, tinha conseguido um emprego como programadora no MIT, e o plano era que ela apoiasse seu marido através de seu período de três anos em Harvard Law. Depois disso, seria a vez dela – ela queria uma pós-graduação em matemática.

Mas o programa espacial Apollo apareceu. E Hamilton ficou no laboratório para liderar um feito épico de engenharia que ajudaria a mudar o futuro do que era humanamente e digitalmente possível.

Ver mais

Como mãe trabalhadora nos anos 60, Hamilton era incomum; mas como programador de uma nave espacial, Hamilton era positivamente radical. Hamilton trazia sua filha Lauren para o laboratório nos fins de semana e à noite. Enquanto Lauren de 4 anos dormia no chão do escritório com vista para o rio Charles, sua mãe se afastava, criando rotinas que acabariam sendo adicionadas ao computador do módulo de comando da Apollo.

“As pessoas me diziam: ‘Como você pode deixar sua filha? Como você pode fazer isso?”” Hamilton se lembra. Mas ela adorava a novidade arcana do seu trabalho. Ela gostava da camaradagem – as bebidas depois do trabalho no clube de professores do MIT; as piadas de geek, como dizer que ela estava “indo para o ramo esquerdo menos” ao redor do corredor. As pessoas de fora não faziam a menor ideia. Mas no laboratório, ela diz: “Eu era um dos caras”

Então, como agora, “os caras” dominavam a tecnologia e a engenharia. Como as codificadoras na indústria tecnológica de hoje, Hamilton era um outlier. Pode surpreender os criadores de software de hoje que um dos pais fundadores do clube dos seus rapazes fosse, de facto, uma mãe – e isso deveria dar-lhes uma pausa enquanto consideram porque é que a desigualdade de género da era dos Homens Loucos persiste até hoje.

‘Quando entrei nisso, ninguém sabia o que é que estávamos a fazer. Era como o “Oeste Selvagem”. – Margaret Hamilton

Como a carreira de Hamilton começou, o mundo do software estava à beira de um salto gigantesco, graças ao programa Apollo lançado por John F. Kennedy em 1961. No MIT Instrumentation Lab onde Hamilton trabalhou, ela e seus colegas estavam inventando idéias centrais na programação de computadores enquanto escreviam o código para o primeiro computador portátil do mundo. Ela se tornou uma especialista em programação de sistemas e ganhou importantes argumentos técnicos. “Quando eu entrei nele, ninguém sabia o que estávamos a fazer. Era como o Oeste Selvagem. Não havia nenhum curso nele. Eles não o ensinavam”, diz Hamilton.

Esta foi uma década antes da Microsoft e quase 50 anos antes de Marc Andreessen observar que o software é, na verdade, “comer o mundo”. O mundo não pensava muito em software nos primeiros tempos da Apollo. O documento original que estabelece os requisitos de engenharia da missão Apollo não mencionava sequer a palavra software, o professor de aeronáutica do MIT David Mindell escreve em seu livro Digital Apollo. “O software não estava incluído no cronograma e não estava incluído no orçamento”. Não no início, de qualquer forma.

mhh-apollo
Margaret Hamilton dentro de um mock-up do módulo de comando Apollo.

MIT

Margaret-Hamilton
Hamilton fica ao lado de listagens do código fonte da Apollo Guidance Computer (AGC).

NASA

mhh-and-an-fsq-7.ppt
Hamilton com um de seus antigos colegas em 19 de abril de 1962. Hamilton estava desenvolvendo software no primeiro computador AN/FSQ-7 no Lincoln Labs. O software de Hamilton era um programa de vigilância de registro de radar usado para detectar potenciais aviões inimigos.

Cortesia Margaret Hamilton

mhh-lauren-2
Hamilton e sua filha Lauren.

Cortesia Margaret Hamilton

Apresentação1
Hamilton, extrema esquerda, senta-se com alguns dos seus empregados na sala Scama no MIT, enquanto apoia a missão Apollo 8.

Cortesia Margaret Hamilton

raytheon-lab
Uma operária Raytheon tecendo fios de cobre através de anéis magnéticos.

Jack Poundstone/Raytheon

raytheon-lab1
“Little Old Ladies” of Raytheon.

Jack Poundstone/Raytheon

raytheon-copper
Close-up view of Raytheon copper wires.

Jack Poundstone/Raytheon

Mas à medida que o projeto Apollo se desdobrava, a centralidade do software no cumprimento da missão começava a se tornar clara. Em 1965, Hamilton tornou-se responsável pelo software de voo a bordo dos computadores Apollo. Era uma época emocionante, e os EUA dependiam do trabalho que ela estava fazendo. Mas às vezes a pressão mantinha Hamilton acordado durante a noite. Uma vez, depois de uma festa noturna, ela correu de volta ao laboratório de informática para corrigir um código que de repente percebeu que estava com falhas. “Eu estava sempre imaginando manchetes nos jornais, e eles apontavam de volta para como isso acontecia, e isso apontava de volta para mim”

Em meados de 1968, mais de 400 pessoas estavam trabalhando no software da Apollo, porque o software era como os EUA iriam ganhar a corrida para a lua. Como acabou, é claro, o software ia ajudar o mundo a fazer muito mais. Como Hamilton e seus colegas estavam programando a espaçonave Apollo, eles também estavam incubando o que se tornaria uma indústria de 400 bilhões de dólares.

Para Hamilton, programar significava fazer buracos em pilhas de cartões perfurados, que seriam processados durante a noite em lotes em um computador mainframe gigante Honeywell que simulava o trabalho do aterrador Apollo. “Tivemos que simular tudo antes de voar”, lembra Hamilton. Uma vez que o código fosse sólido, ele seria enviado para uma instalação Raytheon próxima, onde um grupo de mulheres, costureiras experientes conhecidas pelo programa Apollo como as “Little Old Ladies”, enfiaram fios de cobre através de anéis magnéticos (um fio que passava por um núcleo era um 1; um fio que contornava o núcleo era um 0). Esqueça a RAM ou drives de disco; na Apollo, a memória era literalmente por fio e quase indestrutível.

Apollo flights transportou duas máquinas quase idênticas: uma usada no módulo lunar – a Águia que pousou na Lua – e outra no módulo de comando que transportou os astronautas de e para a Terra. Estes computadores Apollo de 70 libras eram computadores portáteis, diferentes de qualquer outro. Concebido por engenheiros do MIT como Hal Laning e o chefe do Hamilton, Dick Batton, foi um dos primeiros computadores importantes a utilizar circuitos integrados em vez de transístores. Como Mindell conta a história, foi o primeiro sistema de navegação a bordo computadorizado projetado para ser operado por humanos, mas com tecnologia de piloto automático “fly-by-wire” – um precursor dos sistemas de navegação computadorizados que agora são padrão em jetliners.

O sistema armazenou mais de 12.000 “palavras” em sua memória permanente – as “cordas” de cobre enfiadas pelos trabalhadores da Raytheon – e tinha 1.024 palavras em sua memória temporária e apagável. “Foi a primeira vez que um computador importante esteve em uma nave espacial e deu muita responsabilidade pela missão”, diz Don Eyles, que trabalhou no código do módulo lunar enquanto estava no IL do MIT. “Nós mostramos que isso podia ser feito. Fizemo-lo no que hoje parece uma quantidade incrivelmente pequena de memória e uma velocidade de computação muito lenta”. Sem isso, Neil Armstrong não teria conseguido chegar à Lua. E sem o software escrito por Hamilton, Eyles e a equipe de engenheiros do MIT, o computador teria sido um dud.

Isso ficou claro em 20 de julho de 1969, poucos minutos antes da Apollo 11 ter tocado o Mar da Tranqüilidade. Por causa do que o engenheiro de software da Apollo Don Eyles chamou de “erro de documentação”, o computador da Apollo começou a cuspir mensagens de erro preocupantes durante essa fase crítica da missão. Mas foi aqui que os argumentos técnicos ganhos por Hamilton e outros salvaram o dia. As mensagens de erro estavam aparecendo porque o computador estava sendo sobrecarregado, encarregado de fazer uma série de cálculos desnecessários quando, na verdade, era mais necessário aterrissar o módulo na superfície da lua. De volta a Houston, os engenheiros sabiam que, devido ao processamento assíncrono único da Apollo, o computador se concentraria na tarefa de aterrar a Águia no Mar da Tranquilidade. Quando o software percebeu que não tinha espaço suficiente para fazer todas as funções que deveria estar fazendo, passou por seu processo de detecção de erros e se concentrou no trabalho de maior prioridade, diz Hamilton.

‘Isso nunca aconteceria’

‘Um dia, Lauren estava brincando com a unidade de display-and-keyboard do simulador do módulo de comando MIT, apelidado de DSKY (dis-key). Enquanto ela brincava com o teclado, uma mensagem de erro apareceu. Lauren tinha espatifado o simulador ao lançar de alguma forma um programa de pré-lançamento chamado P01 enquanto o simulador estava no meio do vôo. Não havia razão para um astronauta fazer isso, mas mesmo assim, Hamilton queria adicionar código para evitar o travamento. Essa ideia foi rejeitada pela NASA. “Tinham-nos dito muitas vezes que os astronautas não cometeriam nenhum erro”, diz ela. “Eles foram treinados para serem perfeitos.” Então, em vez disso, Hamilton criou uma nota de programa – um suplemento à documentação do programa que estaria disponível para os engenheiros da NASA e os astronautas: “Não selecione P01 durante o voo”, disse ela. Hamilton queria adicionar um código de verificação de erros ao sistema Apollo que impedisse que isso estragasse os sistemas. Mas isso parecia excessivo para os seus superiores. “Todos disseram, ‘Isso nunca aconteceria'”, lembra Hamilton.

Mas aconteceu. Por volta do Natal de 1968 – cinco dias no histórico vôo da Apollo 8, que levou os astronautas à lua para a primeira – a órbita tripulada – o astronauta Jim Lovell selecionou inadvertidamente o P01 durante o vôo. Hamilton estava na sala de conferências do segundo andar do Laboratório de Instrumentação quando a chamada chegou de Houston. O lançamento do programa P01 tinha eliminado todos os dados de navegação que Lovell tinha recolhido. Isso era um problema. Sem esses dados, o computador Apollo não seria capaz de descobrir como levar os astronautas para casa. O Hamilton e os codificadores do MIT precisavam de uma solução; e ela precisava ser perfeita. Depois de passarem nove horas a passar pela lista de programas de 8 polegadas de espessura na mesa à sua frente, eles tinham um plano. Houston carregaria novos dados navegacionais. Tudo ia ficar bem. Graças ao Hamilton – e à Lauren – os astronautas da Apollo chegaram a casa.

Também graças ao Hamilton e ao trabalho que ela liderou, noções do que a humanidade podia fazer, e ser, mudado não só além da estratosfera, mas também aqui no chão. A engenharia de software, um conceito pioneiro de Hamilton, encontrou o seu caminho desde a aterragem na lua até quase todos os empreendimentos humanos. Na década de 1970, Hamilton havia passado da NASA e do programa Apollo. Ela passou a fundar e liderar várias empresas de software. Hoje sua empresa, Hamilton Technologies, está a apenas alguns quarteirões do MIT, onde sua carreira começou – um centro da revolução do código que ainda está olhando para as estrelas.

Você também pode gostar:

Deixe um comentário