O mundo moderno é construído com base em códigos antigos. Isso é um problema

linguagens de codificação antigas
Genevieve Poblano/Tendências Digitais

“Como diabos chegamos aqui e literalmente precisamos de programadores COBOL?” perguntou o governador de Nova Jersey, Phil Murphy, em uma recente entrevista coletiva.

Conteúdo

  • Fortran
  • Ada
  • Pascal
  • BÁSICO/Visual Básico
  • COBOL

Diante de um número sem precedentes de desemprego aplicações, o estado teve que expandir imediatamente sua plataforma de pedidos de seguro-desemprego de 40 anos - uma revisão que instantaneamente deu início a uma busca frenética por programadores familiarizados com a linguagem de codificação de décadas COBOL.

Vídeos recomendados

Mas não é apenas Nova Jersey que tem esse problema. Muitos dos sistemas bancários, de defesa e de inteligência artificial do mundo utilizam linguagens de programação que estavam em voga na época em que a Apple estava sem garagem.

A indústria de tecnologia tem afinidade com coisas novas e de ponta, mas se não fosse por linguagens de codificação antigas como COBOL, Ada, Pascal e Fortran, a indústria de crédito, as organizações de investigação científica e numerosos sistemas de defesa chegariam a um ponto estridente. parar. Em outras palavras, sem todo esse código antigo, estaríamos ferrados.

Linguagens de programação com cinquenta anos ainda calculam milhões de transações e estatísticas e servem como espinha dorsal dos sistemas dos quais o mundo moderno depende. Por exemplo, mais de 95% dos caixas eletrônicos e 40% dos bancos usam código COBOL, de acordo com um estudo de 2017. Relatório da Reuters.

Vários desses tabuladores antigos ainda executam funções específicas muito bem. Há também muitos executivos de negócios que não querem desmontar o software testado pelo tempo e que é vital para negócios de sua empresa, então, em vez de revisar e modernizar, eles simplesmente corrigem o código antigo e esperam pelo melhor.

Lutar com tecnologia antiga não é um fenômeno novo. Por exemplo, Califórnia gastou centenas de milhões de dólares tentando atualizar sua tecnologia de DMV e folha de pagamento. No entanto, a actual pandemia e a resultante onda de desemprego iluminaram o quanto a infra-estrutura de software da América está a desmoronar-se, tal como a infra-estrutura física.

Aqui estão cinco línguas “vintage” das quais nosso mundo depende mais do que você imagina, e por que isso pode deixá-lo um pouco nervoso.

Fortran

capa do manual fortran

Se não fosse pelo Fortran, muitos dos supercomputadores e modelos que usamos para coisas como previsão do tempo, astrofísica e análise estatística de alto nível simplesmente não funcionariam.

Construído pela IBM na década de 1950, o Fortran (abreviação de Formula Translation) foi uma das primeiras linguagens de alto nível que usou palavras em vez de números e possibilitou que os codificadores escrevessem programas 500% mais rápido do que quando usavam máquinas código. Poucos desenvolvedores aprendem a linguagem hoje.

“Eu uso Fortran o tempo todo – mas nunca penso nisso”, diz James Howard, cientista de dados do Laboratório de Física Aplicada da Johns Hopkins. Embora Howard não programe nessa linguagem há anos, seus aplicativos acessam regularmente as principais bibliotecas do Fortran. Construídos no início dos anos 70, eles são bem conservados e “incrivelmente rápidos”.

A última vez que Howard teve que escrever um programa em Fortran foi há cerca de 10 anos. Ele trabalhava no Federal Reserve e precisava transferir dados entre dois aplicativos; um que foi escrito em C e outro em Fortran. Os programas pararam de se comunicar porque o fornecedor parou de fornecer a biblioteca Fortran.

O programador de 40 e poucos anos lembrou-se de algo que leu quando criança, que a estrutura de chamada de dados da linguagem de programação C é oposta à do Fortran. Ele escreveu um roteiro simples para inverter a ordem e, pronto, o Federal Reserve estava de volta aos negócios.

perfurador fortran

Ada

Os programadores governamentais contam com a relativamente obscura base de código Ada ao desenvolver sistemas que exigem confiabilidade, como sistemas de defesa e segurança. O que exatamente está programado nele? Bem, isso é um segredo de governo, mas a NASA e a Boeing empregaram código baseado em Ada nos últimos anos para programar satélites e aviões.

O Departamento de Defesa (DOD) supervisionou o desenvolvimento do Ada na década de 1970 para reduzir o número de linguagens de programação utilizadas pelos militares, que na época era superior a 400. Ada foi construída para ser inquestionavelmente confiável em situações de vida ou morte e fortalecida contra erros do programador. Embora a linguagem tenha sido aprovada em 1980, o Congresso não determinou o seu uso em todos os sistemas governamentais até 1995. Dois anos depois, o DOD abandonou o mandato, imaginando que seria mais barato e mais flexível utilizar sistemas atualizados e amplamente disponíveis. Mas ainda está em uso hoje.

Pascal

pôster pascal
No início dos anos 80, o pôster do Apple Pascal podia ser encontrado em todo o escritório da empresa, dando aos programadores informações sobre como usar o código.

Muitos programadores consideram Pascal uma linguagem de programação quase morta, mas ela continua viva de várias maneiras. “Acredite ou não, ainda é uma língua muito popular em muitas partes do mundo, mas nos EUA, você pode falaremos latim”, diz Dave Hatter, que passou três anos em uma grande companhia de seguros ajudando a atualizar um milhões de linhas de código que estimavam quanto custavam as apólices e quanto elas pagavam.

Muitos desses programas mais antigos foram escritos muito antes das preocupações atuais sobre violações de segurança e possuem informações proprietárias confidenciais. Hatter, que agora trabalha como técnico de segurança cibernética, imagina que os programas podem ser relativamente seguros apenas por causa da “segurança pela obscuridade” – os jovens programadores não sabem o que fazer com códigos de décadas atrás. “Um hacker de 15 anos não terá ideia de como trabalhar com algum tipo de mainframe IBM 390 com COBOL”, diz ele. “Agora não estou dizendo que eles não poderiam aprender. Mas eles não vão saber.

Pascal foi a base para um dos primeiros sistemas operacionais da Apple, e o descendente da linguagem, Delphi, ainda tem fortes defensores. Na verdade, o Skype — um dos primeiros aplicativos de videochamada a ganhar ampla popularidade e uso — foi originalmente escrito em Delphi.

BÁSICO/Visual Básico

O BASIC não está exatamente no topo da lista quando se trata de linguagens que as pessoas usam em 2020, mas muitos dos aplicativos modernos dos quais confiamos simplesmente não existiriam sem ele. Por exemplo, se você já programou uma macro do Excel, usou uma forma de BASIC.

Abreviação de Código de instrução simbólica multifuncional para iniciantes, o BASIC foi lançado em 1963 no Dartmouth College como uma forma de ensinar um ao público em geral as teorias e capacidades da programação - um mergulho na água antes de entrar em linguagens mais robustas como Fortran. A popularidade do BASIC cresceu junto com o computador pessoal – os computadores Apple, IBM e Atari tinham suas versões.

Em meados da década de 1980, os nerds autodidatas da informática estavam menos entusiasmados com o BASIC e mais interessados ​​em programas de terceiros. Então a Microsoft lançou o Visual Basic em 1991, que não era exatamente uma atualização do BASIC, mas usava alguns dos mesmos comandos e estrutura e tinha uma interface gráfica melhor. Em seguida, a linguagem foi utilizada por inúmeras empresas para escrever programas grandes e pequenos. Embora a Microsoft tenha dito que interrompeu o suporte ao Visual Basic 6 (a versão mais recente) em 2008, a linguagem ainda tem muitos usuários. Verifica a Índice Tiobe (que mapeia as linguagens de programação mais populares): VB ainda está entre os 10 primeiros!

COBOL

cartaz de cobol
Um pôster de 1969 promovendo uma aula do MIT COBOL.

“Eu diria que mais de 90% das pessoas que atendemos têm o COBOL como parte central do que escreveram”, estima Brandon Edenfield, que atualiza e faz a transição de aplicativos legados para Sistemas Modernos e ajudou a revisar o código das bolsas de valores de Nova York e Cingapura. “Qualquer grande empresa que você possa imaginar provavelmente possui uma quantidade prejudicial à saúde dessas coisas.”

COBOL, um acrônimo para Common Business-Oriented Language, foi lançado em 1959 voltado para tarefas de processamento de dados como controle de orçamento, transações bancárias e contabilidade de folha de pagamento. O Departamento de Defesa (DOD) originalmente projetou a linguagem como um projeto provisório. Então o DOD exigiu que os fabricantes de computadores incluíssem COBOL nas máquinas que vendiam e a linguagem se espalhou rapidamente nas décadas seguintes. Mais de 95% dos caixas eletrônicos e 40% dos bancos ainda usam código COBOL, de acordo com um estudo de 2017 Relatório da Reuters.

Grande parte dessa programação foi implantada por meio de computadores mainframe e os sistemas modernos migraram para a nuvem. Como ilustrou a situação de Nova Jersey, os desenvolvedores que sabiam como manter o código COBOL estão envelhecendo ou já se aposentaram.

As empresas que modernizam esses programas normalmente o fazem de algumas maneiras diferentes.

“Um grande integrador de sistemas lançará um monte de gente no código; eles vão sentar, olhar e reescrever”, diz Edenfield. Essa abordagem é muitas vezes a mais arriscada, demorada e dispendiosa. Em média, grandes trabalhos de replataforma codificados manualmente podem levar de 3 a 10 anos e custar centenas de milhões de dólares.

Edenfield recomenda soluções automatizadas e diz que o primeiro passo lógico pode ser apenas mover o código do uma versão desatualizada do COBOL para uma versão atual, o que permitiria que muitos sistemas fizessem a transição para o moderno servidores. Ele compara uma atualização de máquina à tradução do francês para o inglês: “A base do que está sendo dito é traduzida perfeitamente. Você apenas precisa corrigir a sintaxe de como é redigido.” Essa abordagem também pode reduzir o tempo e o custo de uma atualização, diz ele, algo entre seis e 24 meses.

Será barato? Bem, será mais barato. Os projetos de sistemas modernos normalmente variam em preço de US$ 200.000 a US$ 10 milhões. Grande parte do projeto, explica Edenfield, não é traduzir o código, mas testar para ter certeza de que está tudo certo.

O motivo pelo qual essas atualizações não acontecem?

“Ninguém ouviu falar disso antes porque não é um assunto sexy e as pessoas geralmente não tentam falar sobre a roupa suja que têm”, explica. Os executivos de TI também têm o hábito de chutar a lata no caminho.

“Aposto que o estado de Nova Jersey vai prestar atenção a esta questão agora, mas também aposto que metade dos seus colegas pensarão que isso não vai acontecer com eles, ‘não eu’”.