O suporte recebido para Modula-2 no GCC, e um novo repositório Gitlab para seu sucessor Oberon, mostra que a família Wirthian de linguagens de programação continua mais ativa do que você imagina. Então, o GCC 13 terá suporte Modula-2.
Modula-2 é o que o inventor de Pascal, Niklaus Wirth, fez logo em seguida. O Modula-2 é o descendente direto do Pascal, voltado para uma programação mais modular (a pista está logo no nome) e mais paralela. Parte da ideia era facilitar a divisão de programas em partes discretas, para que pudessem ser compilados e executados separadamente.
Em 1976, Wirth passou um ano sabático na Xerox PARC. Naquela época, era aqui que a interface gráfica do usuário em janelas e a linguagem Smalltalk para programá-la estavam em desenvolvimento ativo. A Xerox não conseguiu comercializar com sucesso seu trabalho, mas fez um acordo de licenciamento com a Apple antes de mostrá-lo a alguns engenheiros da Apple. A Apple, é claro, conseguiu transformar isso em produtos de remessa: primeiro o Lisa e depois, de forma mais lucrativa, o Mac.
GCC 13 terá suporte Modula-2
As primeiras GUIs da Xerox e a estação de trabalho Star foram programadas em uma linguagem chamada Mesa (PDF), que inspirou Wirth. Quando ele voltou para a ETH Zürich, ele parou de trabalhar em seu primeiro Modula sucessor do Pascal, criando o Modula-2 adicionando suporte para comunicações entre módulos usando um modelo baseado em corrotinas, conforme explicado eloquentemente por nosso próprio Verity Stob. (Como observa Verity, corrotinas também são o modelo para Go, onde são chamadas de goroutines.)
Inspirado pela Xerox Alto – mas não sendo capaz de trazer uma para casa com ele – Wirth projetou sua própria estação de trabalho gráfica, a Lilith. Modula-2 teve algum sucesso na década de 1980; por um tempo, o Topspeed Modula-2 foi o compilador mais rápido para o PC. Os inventores do chip Arm Acorn usaram o Modula-2 para construir um novo sistema operacional para seu novo chip RISC, ARX, embora o projeto tenha sido suplantado pelo RISC OS.
Modula-2 ainda está em uso hoje, por exemplo, no sistema russo de navegação por satélite GLONASS. Há um GNU Modula-2 por um tempo, mas agora que este patch foi mesclado, o Modula-2 fará parte da cadeia de ferramentas principal no GCC 13, junto com o suporte preliminar para Rust que chegou recentemente. O GCC 13 suportará os dialetos PIM 2, 3 e 4 e ISO do idioma.
Os descendentes
Embora também houvesse uma linguagem Modula-3, ela não foi projetada pelo próprio Wirth e está praticamente extinta agora, mas é creditada como uma influência no design do mecanismo de invocação de método remoto original de Java.
Como mencionamos ao introduzir sistemas operacionais não baseados em C, o sucessor de Wirth foi o Projeto Oberon. Um emulador FPGA para a estação de trabalho Oberon original foi lançado em 2015, mas infelizmente não está mais disponível. Oberon é tanto uma linguagem quanto um sistema operacional e IDE minúsculos e altamente eficientes. Tem sido chamado de “jóia negligenciada” [PDF – HTTP apenas] da ciência da computação.
O desenvolvimento de Oberon ainda continua. Em sua instituição de origem, ETH Zürich, o Dr. Felix Friedrich ainda está trabalhando e ensinando Oberon e, na semana passada, publicou um novo repositório Gitlab com o código mais recente. Este é o sistema operacional A2, no dialeto “Active Oberon”, e suspeitamos que seja o menor e mais limpo sistema operacional do mundo capaz de lidar com SMP, TCP/IP e Web.
Para Windows
Não está interessado na parte do sistema operacional, mas a linguagem parece interessante? Experimente a versão do Windows, BlackBox Component Builder.
Se você preferir o original de Wirth, porém, o compilador Free Pascal está em manutenção e uso ativos, completo com o rico Lazarus IDE. Ambos rodam em Linux, FreeBSD, Windows e macOS. A linguagem e o IDE ainda não são totalmente compatíveis com Delphi, mas a equipe está trabalhando nisso.