O que é COBOL e por que tantas instituições dependem dele?

Três pessoas monitorando um computador mainframe antigo da era COBOL.
Coleção Everett / Shutterstock

O governador de New Jersey mencionou recentemente COBOL , uma linguagem de programação de 60 anos. O que exatamente é isso? E por que ainda é o eixo central do mundo financeiro, apesar de poucas pessoas ainda saberem como usá-lo?

As origens do COBOL

Grace Hoppe r foi um fenômeno. Ela obteve um doutorado em matemática em Yale, foi professora em Vassar e deixou a Marinha dos Estados Unidos com o posto de contra-almirante. Suas contribuições para o campo da computação podem ser julgadas pelo número de fundações e programas que foram criados em sua memória . National Energy Research Scientific Computing Center deu o  nome dela a seu supercomputador Cray XE6 . A Marinha também batizou seu destruidor de mísseis teleguiados, o USS Hopper, em homenagem a ela. O lema do navio, “Aude et Effice” (“Ouse e Faça”), pode muito bem ter sido cunhado com Hopper em mente.

Motivado a criar uma linguagem de programação mais próxima do inglês do que os computadores de código de máquina entendem, Hopper desenvolveu o primeiro compilador. Isso abriu as portas para as primeiras linguagens compiladas, como FLOW-MATIC . Isso lhe rendeu uma cadeira na Conferência / Comitê de Linguagens de Sistemas de Dados ( CODASYL ) de 1959.

Ela também foi fundamental na especificação e desenvolvimento da Common Business-Oriented Language (COBOL) . A primeira reunião ocorreu em 23 de junho de 1959, e seu relatório e especificação da linguagem COBOL ocorreram em abril de 1960.

COBOL era radical

COBOL continha alguns conceitos inovadores. Indiscutivelmente, o mais significativo deles era a capacidade de funcionar em hardware produzido por diferentes fabricantes, o que era inédito na época.

A linguagem era elaborada e fornecia um vocabulário quase inglês para os programadores trabalharem. Ele foi projetado para lidar com grandes volumes de dados e ser excepcionalmente preciso do ponto de vista matemático.

Seu vocabulário de palavras reservadas (as palavras que compõem a linguagem) é próximo a 400. Um programador encadeia essas palavras reservadas para que façam sentido sintático e crie um programa.

Qualquer programador que esteja familiarizado com outras linguagens dirá que 400 é um número incrível de palavras reservadas. Para efeito de comparação, a linguagem C tem 32, e Python tem 33.

Recomendado:  Como corrigir “Seu sistema ficou sem memória de aplicativo” em um Mac

Outra peculiaridade do COBOL é sua exigência estrita de que certas linhas do programa comecem em certas colunas. Esta é uma ressaca dos dias dos cartões perfurados . Hoje, os programadores têm mais liberdade ao formatar COBOL e não precisam mais digitar tudo em maiúsculas. Isso torna o trabalho com ele menos prescritivo e gritante, mas ainda é uma criação de seu tempo, conforme mostrado abaixo:

DIVISÃO DE IDENTIFICAÇÃO.
      ID DO PROGRAMA. Olá Mundo.
      DIVISÃO DE DADOS.
      SEÇÃO DE ARQUIVOS.
      SEÇÃO DE TRABALHO-ARMAZENAMENTO.
      DIVISÃO DE PROCEDIMENTO.
      PROCEDIMENTO PRINCIPAL.
           DISPLAY "Olá, mundo, do How-To Geek!"
           STOP RUN.
      FIM DO PROGRAMA Hello-World.

COBOL é um sucesso

Uma mulher usando um caixa eletrônico ao ar livre.
A maioria das transações em caixas eletrônicos ainda usa COBOL. Capricorn Studio / Shutterstock

Por mais desajeitado que possa parecer hoje, o COBOL foi revolucionário quando foi lançado. Encontrou apoio no setor financeiro, no governo federal e em grandes corporações e organizações. Isso se devia à sua escalabilidade, recursos de manuseio em lote e precisão matemática. Ele foi instalado em mainframes em todo o mundo, criou raízes e floresceu. Como uma erva daninha teimosa, ela simplesmente não morre.

Nossa dependência de sistemas que ainda funcionam em COBOL é impressionante. Um relatório da Reuters em 2017 compartilhou as seguintes estatísticas de cair o queixo:

  • Existem 220 bilhões de linhas de código COBOL ainda em uso hoje.
  • O COBOL é a base de 43% de todos os sistemas bancários.
  • Os sistemas com tecnologia COBOL administram US $ 3 trilhões de comércio diário.
  • O COBOL lida com 95% de todas as passagens de cartão ATM.
  • O COBOL possibilita 80% de todas as transações pessoais com cartão de crédito.

Como você pode ver, é difícil passar um dia sem usar um sistema que dependa do COBOL. Contas bancárias e serviços de compensação de cheques, bem como infraestruturas voltadas ao público, como caixas eletrônicos e semáforos, ainda funcionam neste código escrito décadas atrás.

COBOL é um problema

Os programadores que conhecem COBOL ou estão aposentados, pensando em se aposentar, ou estão mortos. Estamos constantemente perdendo as pessoas que têm as habilidades para manter esses sistemas vitais funcionando. Os programadores novos e mais jovens não conhecem COBOL. A maioria também não quer trabalhar em sistemas para os quais você precise manter códigos antigos ou escrever novos códigos.

Recomendado:  Como usar a função ARRAYFORMULA no Planilhas Google

Esse é um problema tão grande que Bill Hinshaw, um veterano do COBOL, foi forçado a deixar de se aposentar para fundar o COBOL Cowboys . Esta empresa de consultoria privada atende a clientes corporativos desesperados que não conseguem encontrar codificadores experientes em COBOL em lugar nenhum. Os “jovens” do COBOL Cowboys (cujo lema é “Not Our First Rodeo”) estão na casa dos 50 anos. Eles acreditam que 90% dos sistemas de negócios da Fortune 500 são executados em COBOL.

É claro que empresas privadas, corporações e bancos não são os únicos que precisam processar quantidades gigantescas de dados financeiros. Os serviços governamentais federais, provinciais e locais têm os mesmos requisitos. Como todos os outros, eles usam mainframes e COBOL para isso.

O terrível impacto da pandemia de coronavírus causou sofrimento, mortes e incerteza econômica para proprietários de empresas, empregados e autônomos. O grande número de funcionários licenciados e demitidos em Nova Jersey levou o governador a apelar para que programadores COBOL experientes ajudassem os sistemas de back-end envelhecidos do estado. Eles estão se esforçando para lidar com os  326.000 novos registros .

O Open Mainframe Project está executando uma iniciativa voluntária para ajudar. Se você acha que pode ajudar, eles ficarão contentes em ouvir de você.

Nova Jersey não está sozinha nessa situação. Mais de 10 milhões de pessoas se cadastraram para o desemprego, e esse número está aumentando. Connecticut está lutando para processar um quarto de milhão de novos registros nos sistemas de 40 anos do estado .

Este é um problema amplamente difundido e profundamente enraizado. Um relatório de 2016 do Government Accountability Office listou sistemas COBOL em execução em mainframes de até 53 anos. Isso inclui sistemas usados ​​para processar dados relacionados ao Departamento de Assuntos de Veteranos, Departamento de Justiça e Administração do Seguro Social.

Por que não migrar e atualizar, tipo, ontem?

Atualizar esses sistemas legados não é tão simples quanto parece. Os sistemas são fulcros vitais, 24 horas por dia, 7 dias por semana, sobre os quais os mundos financeiro, governamental e empresarial giram em torno. O código é antigo, com várias camadas e, muitas vezes, mal ou totalmente não documentado. Também tem que funcionar, o tempo todo. A perspectiva foi comparada a tirar as hélices de uma aeronave e tentar equipá-las com motores a jato – enquanto estão no ar.

Recomendado:  O que é ReFS (o sistema de arquivos resiliente) no Windows?

O risco à parte, o argumento econômico para migrar para sistemas modernos também é difícil. O dinheiro que foi injetado para manter esses mainframes e aplicativos COBOL operacionais é impressionante. As instituições deveriam jogar tudo fora e começar de novo enquanto o código COBOL ainda está em execução e funcional? Esse é um argumento difícil para uma placa que provavelmente não tem inclinação técnica. Uma migração COBOL não será barata nem rápida.

“Acabei de passar de uma conversão para ir de COBOL para Java”, disse Hinshaw. “Levaram quatro anos e ainda não terminaram .”

Quando o Commonwealth Bank of Australia substituiu sua plataforma principal COBOL em 2012 , levou cinco anos a um custo final de $ 749,9 milhões ($ 1 bilhão australiano).

E é aí que tudo sai de acordo com o plano. O banco do Reino Unido,  TSB , foi forçado a migrar de um sistema baseado em COBOL em 2018 devido a uma compra. Não correu bem. Como o banco não conseguiu negociar por dias, o custo da migração acabou sendo de 330 milhões de libras. Isso foi além do custo orçado para o trabalho de engenharia para a migração real. A TSB também perdeu 49,1 milhões de libras com fraudes financeiras enquanto seus sistemas estavam derretendo.

A compensação do cliente chegou a 125 milhões de libras, e o banco teve que gastar 122 milhões de libras contratando novos funcionários para lidar com os 204.000 casos de reclamação de clientes. O executivo-chefe pediu demissão e a empresa ainda está limpando os danos dois anos após o evento.

The COBOL Conundrum

As coisas não podem ficar como estão, mas a perspectiva de fazer algo a respeito não é atraente. No entanto, a única maneira de as coisas melhorarem é conduzir migrações controladas e cuidadosas para softwares e hardwares modernos.

Para conseguir isso sem interrupções, perda de dados e tempo de inatividade, serão necessários conhecimentos e dinheiro modernos, o que representa 50% da equação. A outra metade é experiência e tempo em COBOL. Infelizmente, esses são os dois ingredientes dos quais estamos quase sem.

Talvez uma nova raça de cowboys COBOL venha para a cidade.