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

O governador de Nova Jersey COBOL mencionado recentemente, 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 Hopper 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 têm foi criado em sua memória. O Centro Nacional de Computação Científica de Pesquisa Energética nomeou seu Cray XE6 supercomputador depois dela. A Marinha também deu o nome dela a seu destruidor de mísseis teleguiados, o USS Hopper. 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 a porta para as primeiras linguagens compiladas, como FLOW-MATIC. Isso lhe rendeu um assento na Conferência / Comitê de Linguagens de Sistemas de Dados (CODASYL) de 1959.

Ela também foi fundamental na especificação e desenvolvimento do Linguagem Comum para Negócios (COBOL). A primeira reunião ocorreu em 23 de junho de 1959, e seu relatório e especificação da linguagem COBOL seguido em abril de 1960.

COBOL era radical

COBOL continha alguns conceitos inovadores. Sem dúvida, 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 familiarizado com outras linguagens dirá que 400 é um número incrível de palavras reservadas. Para comparação, o Linguagem C tem 32, e Pitão tem 33.

Outra peculiaridade do COBOL é sua exigência estrita de que certas linhas do programa comecem em certas colunas. Esta é uma ressaca dos dias de 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 a seguir:

IDENTIFICATION DIVISION.
      PROGRAM-ID. Hello-World.
      DATA DIVISION.
      FILE SECTION.
      WORKING-STORAGE SECTION.
      PROCEDURE DIVISION.
      MAIN-PROCEDURE.
           DISPLAY "Hello world, from How-To Geek!"
           STOP RUN.
      END PROGRAM Hello-World.

COBOL é um sucesso

A maioria das transações em caixas eletrônicos ainda usa COBOL.

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 é surpreendente. UMA 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 gerenciam US $ 3 trilhões de comércio diário.
O COBOL lida com 95 por cento 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 para o 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 perdendo constantemente as pessoas que têm as habilidades para manter esses sistemas vitais funcionando. Programadores novos e mais jovens não conhecem COBOL. A maioria também não quer trabalhar em sistemas para os quais você precisa manter códigos antigos ou escrever novos códigos.

Este é um problema tão grande que Bill Hinshaw, um veterano do COBOL, foi forçado a deixar de se aposentar para fundar COBOL Cowboys. Essa 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 por cento 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 do coronavírus causou sofrimento, fatalidades 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 liderou o governador apelará para programadores COBOL experientes para ajudar os sistemas de back-end envelhecidos do estado. Estes estão se esforçando para lidar com o 326.000 novos registros.

O Projeto de mainframe aberto está executando uma iniciativa baseada em voluntários para ajudar. Se você acha que pode ajudar, eles ficarão felizes em ouvir você.

New Jersey não está sozinha nesta 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 250.000 novos registros nos sistemas de 40 anos do estado.

Este é um problema amplamente difundido e profundamente enraizado. UMA Relatório de 2016 do Government Accountability Office sistemas COBOL listados 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 da Previdência 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 se articulam os mundos financeiro, governamental e empresarial. 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 – durante o vôo.

Deixando o risco de lado, 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? É 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 O Commonwealth Bank of Australia substituiu sua plataforma principal COBOL em 2012, levou cinco anos a um custo final de US $ 749,9 milhões (US $ 1 bilhão na Austrália).

E é aí que tudo sai de acordo com o plano. 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 adicionado ao 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 modernos e dinheiro, 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.