Prestes a completar 90 anos de idade, morreu no último dia primeiro de janeiro Niklaus Wirth, pioneiro do design de software e criador do Pascal. Wirth é considerado o criador da linguagem de programação Pascal, mas esse foi apenas um passo em uma série de linguagens e projetos de pesquisa importantes. Tanto o asteroide 21655 quanto uma lei de design de computador são nomeados em sua homenagem. Ele ganhou o prêmio Turing Award, em 1984, e essa página tem alguns pequenos trechos em inglês de uma entrevista de 2018.
Histórico
Niklaus Emil Wirth nasceu em Wintherthur, na Suíça, no dia seguinte ao Dia de São Valentim de 1934. Em 1959 obteve seu diploma de bacharel pela ETH Zürich, para onde retornou mais tarde na vida e de onde emergiu grande parte de sua importante pesquisa.
Ele mudou de país várias vezes em sua vida – seu mestrado em 1960 foi pela Université Laval, no Canadá, e seu doutorado em 1963 pela UC Berkeley* – a casa do Berkeley Unix, ou BSD, como é geralmente conhecido. Ele permaneceu na Califórnia pelos próximos quatro anos como professor assistente de ciência da computação na Universidade de Stanford. Durante esse tempo, trabalhou em suas duas primeiras linguagens de programação: Euler, em 1965, e PL/360, publicado em 1968.
Em parte como resultado deste trabalho, ele foi convidado para o Grupo de Trabalho planejando a próxima iteração da linguagem de programação ALGOL, para substituir o ALGOL 60. Com o cientista da computação britânico Sir Tony Hoare, ele apresentou uma proposta chamada ALGOL-W. No entanto, isso foi rejeitado em favor de uma proposta mais complexa de Adriaan van Wijngaarden, que se tornou ALGOL-68.
Conforme descrito na História do ALGOL-68 de C H Lindsey [PDF], quando a proposta do ALGOL-W foi rejeitada, Wirth renunciou ao comitê, contribuindo com uma forte “Palavra de Encerramento” para o Boletim Algol 29 de novembro de 1968, contendo preciosidades como:
Peguei minha cópia do projeto de relatório sobre o ALGOL-68 e mostrei-o a ela. Ela desmaiou.
Em vez disso, Wirth aceitou sua proposta, alterou-a para ser um pouco menos compatível com ALGOL, e lançou-a em 1970 sob o nome Pascal.
Dessa forma, a história da criação de Pascal tem dois impactos diferentes e paralelos. Foi, claro, um grande sucesso e ainda é usado hoje. O outro lado disso, porém, é que o supercomplicado ALGOL-68 foi um fracasso: como diz a página ALGOL-60 Forever:
Esta linguagem (Algol 68) foi totalmente mal sucedida quando comparada com a linha de Wirth.
Não é exagero dizer que o ALGOL-60 influenciou todas as linguagens de programação inventadas depois, mas sua influência terminou com a versão lançada após a saída de Wirth. Suas próprias linguagens foram bem sucedidas, em pesquisa e também comercialmente – o Delphi ainda está à venda, e o projeto Free Pascal acaba de lançar a versão 3.0 de seu IDE Lazarus multiplataforma. No entanto, a complexidade do ALGOL-68 abriu as oportunidades para linguagens mais novas e mais simples, como C, Simula-67 e sua descendência C++, e as legiões de outras linguagens e sistemas operacionais implementados nelas.
Morre Niklaus Wirth, pioneiro do design de software e criador do Pascal
Você pode ter uma pista da relação entre os líderes das propostas rivais ALGOL a partir da maneira como Van Wijngaarden introduziu Wirth no palco do congresso da Federação Internacional de Processamento de Informação em 1965. Ele fez uma piada que ficou famosa:
Enquanto os europeus geralmente pronunciam seu nome da maneira correta (“Nick-louse Veert”), os americanos invariavelmente o misturam em “Nickel’s Worth”. Isso quer dizer que os europeus o chamam pelo nome, mas os americanos o chamam pelo valor.
Se Wirth tivesse continuado a trabalhar no ALGOL, sua enorme influência poderia muito bem ter continuado. Da mesma forma, se ele tivesse ficado com a conhecida marca Pascal, seus projetos posteriores poderiam tê-la substituído, em vez de sobreviver ao lado de seus substitutos pretendidos.
Em 1976, Wirth nomeou sua próxima língua de Modula [PDF], mas foi rapidamente substituída por Modula-2 em 1977. Isso adicionou processos cooperativos chamados corotinas à linguagem, usando seu ex-colega de trabalho C A R Hoare’s Communicating Sequential Processes model. (Hoje em dia, eles aparecem em Erlang, Go e Clojure, e foram satirizados por nossa própria Verity Stob.) Nas décadas de 1980 e 1990, o Modula-2 era uma linguagem importante em toda a indústria, como discutimos quando o GCC 13 ganhou suporte para ele no ano passado.
Oberon
Wirth passou dois períodos sabáticos de um ano na Califórnia na Xerox PARC, o primeiro em 1976-1977 e o segundo em 1984-1985. Inspirado pelo que viu lá, em seu retorno a Zurique ele criou o Sistema Oberon, muito mais ambicioso. Oberon é uma linguagem de programação, e um ambiente de desenvolvimento de janela lado a lado, e um sistema operacional completo implementado em si mesmo. A introdução ao manual de Oberon [PDF] contém o que veio a ser conhecido como Lei de Wirth, embora ele modestamente a tenha creditado a Martin Reiser:
Com o Sistema Oberon, queremos refutar a Lei de Reiser, que foi confirmada por praticamente todos os lançamentos recentes de sistemas operacionais: “Apesar dos grandes saltos, o hardware está se tornando mais rápido mais lentamente do que o software está se tornando mais lento.”
O projeto é descrito de forma muito legível em Oberon – The Overlooked Jewel [PDF], que tem apenas 13 páginas. Oberon inspirou vários sucessores, incluindo Oberon-2, Oberon 07 e Component Pascal.
O Sistema Oberon é uma espécie de prova de existência de como o software pode ser muito capaz enquanto é quase inacreditavelmente minúsculo: o , e os arquivos da edição de 2013 totalizam cerca de 4.623 linhas de código, em 262kB de texto. Esse é todo o ambiente central. Mas se isso não bastasse, Wirth explicou a ideia em um famoso artigo de 1995, “A Plea for Lean Software” (O original é um PDF, mas eu coloquei uma versão em texto aqui.)inner
outer
systools
Sua alma mater ETH Zürich o entrevistou em 2021, e os vídeos em alemão têm legendas em inglês: Parte 1, Parte 2 e Parte 3.
De muitos relatos, ele era acessível, amigável e espirituoso; nós particularmente gostamos desta homenagem do Googler Raph Levien. Wirth se aposentou em abril de 1999, embora em 2013, pouco antes de completar 80 anos, ele reapareceu para publicar uma versão atualizada do Projeto Oberon.
Em seu trabalho, nas linguagens e ferramentas que criou, em seu eloquente apelo por softwares menores e mais eficientes – mesmo nos projetos dos quais desistiu – sua influência na indústria de computadores foi quase incalculável. A indústria de software moderna não conseguiu aprender com ele. Embora ele tenha nos deixado, sua obra ainda tem muito mais a ensinar.