História e legado da condessa britânica considerada a primeira programadora da história vêm sendo redescobertos.
Hoje é aniversário de Ada Lovelace, pioneira da programação. Com sua inteligência brilhante, ela anteviu as possibilidades dos computadores, muito antes dos computadores serem construídos.
Nascida em 10 de dezembro de 1815, em Londres, Augusta Ada King teve uma vida curta e intensa. Sua mãe casou e rapidamente se separou do poeta, dândi e maluco Lord Byron. Recebeu uma educação esmerada (em ciências, não em etiqueta, como era de praxe na época para as mulheres) e desde criança demonstrou aptidão para a matemática. Casou-se com William King em 1835, recebendo o título de Condessa de Lovelace. Ambos adoravam corridas de cavalos. Morreu aos 37 anos, após uma série de problemas de saúde.
Aos 17 anos ela ficou amiga do matemático Charles Babbage, inventor da “Máquina Diferencial”, um mecanismo (movido a vapor!) capaz de fazer cálculos avançados para a época e que é hoje considerado o primeiro “computador”. Este vídeo bacana (em inglês) mostra uma exibição de como ele seria. Encantada com as possibilidades oferecidas pelo dispositivo, Ada usou seu aristocrático círculo de influências para divulgar e buscar fundos para sua construção.
O projeto teve um protótipo construído (quase um MVP), mas Babbage abandonou a iniciativa e concentrou suas forças em um modelo mais avançado, a “Máquina Analítica”. Em 1843, Ada traduziu para o inglês e acrescentou notas a um trabalho do engenheiro italiano Luigi Federico Menabrea sobre a Máquina Analítica. Nestas notas (muito mais extensas que o próprio artigo) estão as maiores contribuições de Ada para a ciência. Em uma delas (nota A) ela registra (pela primeira vez na história) que no futuro o invento seria capaz de não apenas fazer cálculos, mas também de processar qualquer tipo de relação entre grandezas e poderia, por exemplo, “compor músicas”. O que é muito comum hoje, veja aqui, por exemplo.
Sua contribuição mais famosa, no entanto, é uma proposta de código para rodar na invenção. Não era uma linguagem, no sentido que elas não existiam ainda, mas sim uma sequencia a ser executada para o cálculo dos números de Bernoulli. Feitos à mão, seriam cálculos que demorariam meses e gerariam todo tipo de erro. Ada Lovelace mostrou como a máquina pensada por Babbage poderia resolver o problema em muito menos tempo.
Recentemente, diversos programadores tentaram (e conseguiram) recriar o programa em linguagens atuais. Em C, temos uma tradução bem famosa aqui. Seu programador, Sinclair Target, explica no blog Two-bit History que não é uma recriação exata, mas um esforço que procurou ser o mais fiel possível, e que o teste mostrou como Lovelace efetivamente dominava o que no futuro chamaríamos de linguagem de programação, com a previsão de loops e outras ferramentas. No entanto, nas palavras de Sinclair:
Para a minha frustração, os resultados não estavam corretos. Depois de alguns ajustes, finalmente percebi que o problema não era o meu código. O bug estava no original!
Um bug é um erro ou falha no código e, no diagrama de 1842, uma operação indicava v5 / v4, quando o correto seria v4 / v5. Típico erro de “digitação” ou falha do programador? Não é possível identificar, mas é a situação em que o erro apenas comprova que Lovelace era realmente uma programadora. Programar é enfrentar os bugs. Há uma versão em Python, aqui.
As contribuições de Ada Lovelace permaneceram esquecidas por mais de um século e somente nas últimas décadas, com pesquisas sobre a história da computação, ela ganhou o status de pioneira da programação. Desde 2009, comemora-se em outubro o Dia de Ada Lovelace, uma celebração das conquistas femininas nas ciências.
Existem muitos livros sobre ela, mas nossa dica é uma ficção histórica, o romance steampunk A Máquina Diferencial, de William Gibson e Bruce Sterling. A narrativa é baseada na seguinte premissa: a máquina idealizada por Babbage é efetivamente construída e concede à Inglaterra uma vantagem estratégica no mundo, em plena Revolução Industrial, e neste cenário misturam-se espiões, exploradores e cientistas. O livro traz Lady Lovelace entre seus personagens.