Ken Thompson: O arquiteto silencioso de tudo
Quando os Laboratórios Bell desistiram do projeto Multics em 1969, Ken Thompson ficou com um minicomputador PDP-7 obsoleto em um canto e sem mandato oficial. Ele o usou para construir um sistema operacional mesmo assim. O Unix roda agora, em alguma forma descendente, em quase todos os servidores, telefones e dispositivos embarcados do planeta. Dennis Ritchie, o colaborador mais próximo de Thompson e uma figura notável por si só, disse sobre aquela primeira versão que "a maioria das ideias, e a maior parte do trabalho, aliás, eram dele".
Aritmética em binário
Kenneth Lane Thompson nasceu em 4 de fevereiro de 1943 em Nova Orleans, Luisiana. Seu relato sobre sua própria infância é caracteristicamente simples: "Sempre fui fascinado pela lógica e, mesmo na escola primária, eu trabalhava em problemas aritméticos em binário, coisas assim. Apenas porque eu era fascinado". Essa última frase define o homem por completo — um apetite intelectual sem nenhum propósito instrumental a ele associado.
Ele obteve um bacharelado em 1965 e um mestrado em 1966, ambos em engenharia elétrica e ciências da computação, na Universidade da Califórnia, Berkeley, onde seu orientador de tese foi o teórico de codificação Elwyn Berlekamp. Os Laboratórios Bell o contrataram em 1966 para o Centro de Pesquisa em Ciências da Computação em Murray Hill, Nova Jersey.
Unix
Entre 1967 e 1969, Thompson trabalhou no Multics, o ambicioso projeto conjunto de compartilhamento de tempo entre os Laboratórios Bell, o MIT e a General Electric. O Multics era enorme, lento e chegou atrasado; os Laboratórios Bell retiraram-se. O que Thompson tirou disso foi a convicção de que as ideias estavam certas, mas a execução estava errada.
A história da origem é bem atestada e ligeiramente absurda. Ele queria continuar jogando Space Travel, um jogo que ele havia escrito, e queria um ambiente decente para trabalhar. Em um PDP-7 descartado, com recursos mínimos e sem apoio institucional, ele construiu o núcleo de um sistema operacional: um sistema de arquivos hierárquico, processos, arquivos de dispositivo tratados como arquivos comuns, um interpretador de linha de comando separado do kernel e pipes para encadear programas. Cada um deles é agora tão padrão que é preciso esforço para vê-los como escolhas.
A filosofia de design foi a compressão. Em vez de um sistema que antecipasse todas as necessidades, o Unix oferecia um pequeno número de primitivas combináveis e deixava os usuários montarem o que quisessem. Em 1973, existiam mais de vinte instalações. Para escrever mais facilmente as partes fora do kernel, Thompson criou a linguagem de programação B, derivada do BCPL, que Ritchie então desenvolveu para C — a linguagem na qual a maior parte do software de infraestrutura do mundo ainda é escrita.
Vinte perguntas, oito minutos no relógio e um percentil medido contra todos os que já fizeram. Sem cadastro.
Fazer o teste de QI →Ferramentas pequenas, raízes profundas
O outro trabalho de Thompson tem a mesma assinatura: uma ideia compacta que se revela fundamental. Ele implementou expressões regulares nos editores QED e ed, e concebeu a construção de Thompson, o algoritmo para converter uma expressão regular em um autômato finito. Quase todos os mecanismos de expressão regular em uso hoje são descendentes dessa notação.
Ele construiu um programa de xadrez em 1971, depois, com Joseph Condon, construiu o Belle, uma máquina de xadrez de propósito especial que dominou o xadrez computacional em sua era, e posteriormente gerou as bases de dados de finais completas para finais de quatro, cinco e seis peças — soluções exaustivas para classes inteiras de posições de xadrez, um corpo de trabalho que mudou permanentemente a teoria dos finais.
Em 1992, com Rob Pike, ele projetou o UTF-8, a codificação de caracteres que permite que um fluxo de bytes transporte qualquer escrita na Terra enquanto permanece compatível com ASCII. Ele agora representa mais de 90 por cento da web. Ele também foi fundamental no Plan 9, o sistema operacional distribuído que os Laboratórios Bell construíram em meados dos anos 1980 para levar as ideias do Unix mais longe do que o próprio Unix poderia ir.
Sua palestra de Turing de 1983, "Reflexões sobre a Confiança", descreveu um compilador que insere uma porta dos fundos nos programas que compila, e também em futuras versões de si mesmo, de modo que o código malicioso não apareça em lugar nenhum em nenhuma fonte que alguém possa ler. O hack de Thompson é um documento fundamental da segurança da computação; o código-fonte foi anotado e publicado em 2023.
Google e Go
Thompson aposentou-se dos Laboratórios Bell no final de 2000 e juntou-se ao Google em 2006, onde, com Rob Pike e Robert Griesemer, ele projetou a linguagem de programação Go. Seu relato sobre a motivação é direto: "Nós três nos reunimos e decidimos que odiávamos C++", uma linguagem que ele chamou de "uma pilha de lixo de ideias mutuamente exclusivas". Go foi construído com a regra de que todos os três designers tinham que estar convencidos de cada recurso, o que é uma disciplina para manter uma linguagem pequena.
As honras acumularam-se constantemente: eleição para a Academia Nacional de Engenharia em 1980, Prêmio IEEE Emanuel R. Piore em 1982, Prêmio Turing da ACM com Ritchie em 1983, Academia Nacional de Ciências em 1985, Medalha IEEE Richard W. Hamming em 1990, Prêmio Pioneiro da Computação em 1994, uma bolsa do Museu da História da Computação em 1997, Medalha Nacional de Tecnologia em 1998, o Prêmio Tsutomu Kanai inaugural em 1999 e o Prêmio Japão de Informação e Comunicação em 2011.
Por que Ken é chamado de gênio
A citação do prêmio Turing da ACM faz uma afirmação incomumente precisa, e vale a pena citá-la porque localiza a qualidade com exatidão: "O sucesso do sistema UNIX deriva de sua seleção de bom gosto de algumas ideias-chave e sua implementação elegante... O gênio do sistema Unix é sua estrutura, que permite aos programadores apoiarem-se no trabalho dos outros".
O gosto é a palavra operativa. O talento de Thompson é subtrativo — uma habilidade de identificar o menor conjunto de conceitos que gerará o maior espaço de comportamento útil, e então recusar todo o resto. Pipes são o exemplo canônico: um mecanismo trivial para conectar a saída de um programa à entrada de outro, o que transforma uma coleção de pequenas ferramentas em um sistema combinatório. Expressões regulares, UTF-8 e Go mostram o mesmo padrão de design mínimo suficiente. Ele é rotineiramente citado entre os maiores programadores que já existiram, e o julgamento vem de pessoas que escrevem código para ganhar a vida em vez de comitês de premiação.
O caso contrário é mais tênue do que para a maioria nesta lista, mas existe. O Unix foi colaborativo — Ritchie, Brian Kernighan, Douglas McIlroy, que propôs os pipes, e outros moldaram-no profundamente, e o Prêmio Turing foi compartilhado. Muitas ideias do Unix foram adaptadas do Multics em vez de inventadas do zero. Thompson não produziu nenhum resultado teórico em ciência da computação, e sua influência reside inteiramente nos artefatos e no julgamento de design. Se isso constitui genialidade ou um ofício extraordinariamente bem desenvolvido é uma pergunta justa. A resposta mais honesta é que, em software, os dois são difíceis de separar, e o ofício de Thompson provou ser mais consequente do que as teorias da maioria das pessoas.
Legado
Linux, macOS, Android, iOS e o software que executa praticamente todos os servidores de internet descendem de decisões que Thompson tomou sozinho em uma máquina descartada em 1969. Sua codificação de caracteres transporta quase todo o texto escrito online. Seu algoritmo de expressão regular reside dentro de cada editor de texto. Ele gravou uma longa história oral para o Museu da História da Computação em 2024, e passou seus últimos anos, tendo abandonado os produtos da Apple, executando o Raspberry Pi OS.
.jpg)