Por que a comunidade acadêmica odeia o COBOL?

Photo by Vasily Koloda on Unsplash

Por diversos motivos, 2020 provavelmente é o ano em que mais se falou sobre a escassez de mão-de-obra para atuar em sistemas desenvolvidos em COBOL.

Desde os últimos anos da década de 1990, em pleno cenário do bug do milênio, nunca ficou tão evidente que a falta de renovação da força de trabalho pode se transformar num problema grave no futuro próximo.

Essa falta de renovação é, em parte, explicada pela simples ausência do COBOL na grade curricular das universidades, apesar de seu uso massivo em grandes e médias corporações ao redor do mundo.

Seria mais um caso de descolamento entre o mundo acadêmico e o universo corporativo? Ou existe, de fato, um preconceito da Ciência da Computação com uma linguagem que existe há mais de 60 anos?

Fatores Históricos

O COBOL foi desenvolvido por um comitê chamado CODASYL, organizado pelo Departamento de Defesa dos EUA. O objetivo era criar uma linguagem destinada a aplicações comerciais que fosse independente do hardware, algo visionário para os anos 1950 e 1960.

Foram convidados representantes dos principais fabricantes de computadores, de grandes empresas usuárias de tecnologia e agências de governo. Do meio acadêmico, uma ou outra participação pontual e nenhum envolvimento no chamado subcomitê de curto prazo, que foi quem efetivamente apresentou uma proposta para a linguagem, em dezembro de 1959.

A verdade é que a academia não se interessava pelo tema das aplicações comerciais, praticamente inexistentes naquele momento. Por outro lado, os programadores/pensadores que trabalhavam para os fabricantes de hardware não tinham, ainda, uma grande preocupação com o formalismo científico.

Universidades têm um papel importante na disseminação de conhecimento através de suas pesquisas e publicações. A ausência do mundo acadêmico do esforço para construir a nova linguagem fez com que, desde o seu nascimento, o COBOL fosse visto como um “produto comercial”, e não como algo que pudesse contribuir para o desenvolvimento da então incipiente Ciência da Computação.

Fatores Técnicos

Ben Shneiderman, pesquisador da Universidade de Maryland, publicou um artigo em 1985 chamado The Relationship Between COBOL and Computer Science. Neste artigo, ele tentava entender quais eram, concretamente, as críticas da academia a uma linguagem já amplamente adotada no mundo inteiro.

Para isso entrevistou cerca de 40 cientistas da computação e pediu que eles apontassem os pontos fortes e fracos da linguagem.

Como pontos fortes, citaram a contribuição do COBOL na criação de dados estruturados, na definição e tratamento de arquivos e na separação entre a definição de dados e a codificação de processos. A capacidade de construção de programas estruturados – com sua divisão em seções, parágrafos, blocos e sentenças – e as várias opções do comando PERFORM – também foi apontada como um avanço importante proporcionado pela linguagem. Muitos reconheceram o sucesso obtido pela comunidade de usuários do COBOL em manter, por décadas, a padronização da linguagem e a independência de equipamento.

As críticas, porém, foram muitas.

A falta de delimitadores de comando (os hoje comuns END-verb) e a impossibilidade de criar blocos em loop (os hoje também comuns PERFORM inline) foram algumas das deficiências apontadas. Curiosamente diversos aspectos citados como “defeitos” da linguagem estavam sendo corrigidas pela especificação COBOL ANS 1985, concluída no mesmo ano em que o artigo foi publicado.

A inexistência de funções e a ausência de recursividade também eram citados como pontos fracos, recursos que seriam incorporados ao COBOL na revisão ISO 2002.

Muitos dos entrevistados mencionaram como um aspecto negativo a “verborragia” da linguagem, com suas diversas palavras opcionais (ou noise words). O fato do COBOL permitir que se escreva tanto ORGANIZATION IS INDEXED como ORGANIZATION INDEXED, READ arquivo RECORD ou simplesmente READ arquivo, WRITE registro AFTER ADVANCING 3 LINES ou WRITE registro AFTER 3, era visto como desnecessário, confuso e pouco formal, apesar dessas noise words terem sido criadas exatamente para deixar o código fonte o mais parecido possível com a língua inglesa.

Fatores psicológicos

Shneiderman menciona ainda alguns fatores muito subjetivos que contribuem para essa rejeição da comunidade científica ao COBOL. Um deles seria simplesmente falta de conhecimento. Um dos entrevistados, por exemplo, disse que “a linguagem era feia”, mas não soube explicar por quê.

Segundo o autor, a causa central desse preconceito está no fato de universidades e empresas atuarem em campos distintos com focos divergentes.

Cientistas e pesquisadores não vêem a construção de uma folha de pagamento como algo desafiador e complexo. Por outro lado, gerentes de TI não precisam construir o algoritmo ótimo para simulação N-Body.

Conclusão

Talvez os interesses de universidades e empresas tenham realmente mais pontos de afastamento do que convergências. Talvez aplicações comerciais e necessidades corporativas nunca sejam encaradas como um desafio suficientemente nobre pela Ciência.

A verdade, porém, é que parece haver um problema iminente causado, ao menos parcialmente, pela falta de formação de uma nova geração de programadores COBOL.

E esse tema, provavelmente, terá que ser endereçado pela própria indústria, uma vez que nem só de Javascript, C e PHP vive o dia a dia da Tecnologia da Informação.


2 comentários sobre “Por que a comunidade acadêmica odeia o COBOL?

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *