Carregando agora

COBOL é o amianto das linguagens de programação

COBOL é o amianto das linguagens de programação

No início do Pandemia de Covid-19, o governador de Nova Jersey fez uma admissão incomum: ele estava sem desenvolvedores COBOL. Os sistemas de seguro-desemprego do estado foram escritos na linguagem de programação de 60 anos e precisavam ser atualizados para lidar com centenas de milhares de sinistros. O problema era que poucos funcionários do estado sabiam como fazer isso. E a crise foi além de Nova Jersey, apenas um dos muitos estados que dependiam destes sistemas pesados. Por um cálculo aproximado, as ineficiências do COBOL custaram ao PIB dos EUA US$ 105 bilhões em 2020.

Você pode pensar que Nova Jersey teria substituído seu sistema depois disso – e que a Covid foi o último suspiro do COBOL. Não exatamente. O novo sistema de desemprego do estado trouxe uma série de melhorias na qualidade de vida, mas no final ainda foi possível graças a um mainframe rodando a linguagem antiga.

COBOL, abreviação de Common Business-Oriented Language, é a linguagem de computador mais amplamente adotada na história. Dos 300 bilhões de linhas de código escritas até o ano 2000, 80% delas estavam em COBOL. Ainda é amplamente utilizado e oferece suporte a um grande número de sistemas governamentais, como registros de veículos motorizados e seguro-desemprego; em qualquer dia, ele pode lidar com algo da ordem de No valor de 3 trilhões de dólares de transações financeiras. Penso no COBOL como uma espécie de amianto digital, quase onipresente no passado e agora incrivelmente e perigosamente difícil de remover.

O COBOL foi proposto pela primeira vez em 1959 por um comitê composto pela maior parte da indústria de computadores dos EUA (incluindo Grace Hopper). Exigia “especificações para uma linguagem comercial comum para computadores digitais automáticos” para resolver um problema crescente: o custo da programação. Os programas eram escritos de forma personalizada para máquinas específicas e, se você quisesse executá-los em outra coisa, isso significava uma reescrita quase total. O comitê abordou o Departamento de Defesa, que abraçou o projeto com alegria.

O design do COBOL o diferencia de outras linguagens de então e de hoje. Foi concebido para ser escrito em inglês simples, para que qualquer pessoa, mesmo quem não fosse programador, pudesse usá-lo; a notação matemática simbólica foi adicionada somente após considerável debate. A maioria das versões do COBOL permite o uso de centenas de palavras (Java permite apenas 68), incluindo “é, “então” e “para”, para facilitar a escrita. Alguns até disseram que o COBOL se destinava a substituir os programadores de computador, que na década de 1960 ocupavam um lugar raro em muitas empresas. no longo prazo.

Mas o que significa ser legível? Os programas não são livros ou artigos; eles são conjuntos condicionais de instruções. Embora o COBOL pudesse destilar a complexidade de uma única linha de código em algo que qualquer um pudesse entender, essa distinção desmoronou em programas que ocupavam milhares de linhas. (É como um manual de montagem da Ikea: qualquer passo é fácil, mas de alguma forma a coisa ainda não funciona.) Além disso, o COBOL foi implementado com uma parte de lógica que passou a ser desprezada: a instrução GO TO, um mecanismo de ramificação incondicional que fazia você disparar de uma seção de um programa para outra. O resultado foi um “código espaguete”, como os desenvolvedores gostam de dizer, que tornou a autodocumentação irrelevante.

Muitos cientistas da computação tiveram problemas com o COBOL desde o início. Edsger Dijkstra o detestou, dizendo: “O uso do COBOL paralisa a mente; seu ensino deveria, portanto, ser considerado uma ofensa criminal”. Dijkstra também odiava a declaração GO TO, argumentando que ela tornava os programas quase impossíveis de entender. Havia um certo esnobismo real: o COBOL era frequentemente desprezado como uma linguagem puramente utilitária, destinada a resolver problemas enfadonhos.

Jean Sammet, um dos designers originais, viu as coisas de forma diferente – a linguagem simplesmente tinha a complicada tarefa de representar coisas complicadas, como a segurança social. Ou, como escreveu outro defensor: “Lamentavelmente, existem muitos desses programas de aplicativos de negócios escritos por programadores que nunca tiveram o benefício do COBOL estruturado bem ensinado”. Um bom COBOL era de fato autodocumentado, mas dependia muito do programador específico. Fred Gruenberger, um matemático da Rand Corporation, colocou a questão desta forma: “O COBOL, nas mãos de um mestre, é uma bela ferramenta – uma ferramenta muito poderosa. O COBOL, quando for manuseado por um funcionário de baixa qualidade em algum lugar, será uma bagunça miserável.”

Publicar comentário

ISSO PODE LHE INTERESSAR