Ciência e Tecnologia

Revise seu COBOL: Por que uma linguagem de 60 anos de repente está em demanda?

Então, como você pode aprender, ganhar muito dinheiro, e salvar muitas agências estatais que precisam de um novo código para lidar com todos os novos programas de estímulo do governo?

Era uma vez, quando o mundo e os computadores eram novos, eu estava em um programa de grau associado para processamento de dados — não havia programas de “ciência da computação” na época — nos quais eu tinha que estudar contabilidade, matemática, estatística e três idiomas de computador: IBM/360 Basic Assembly Language, FORTRAN e COBOL. Nos anos 80, os alunos estavam sendo informados de que cobol era uma língua morta, e ninguém estava estudando mais.

Agora, em 2020, governos e bancos estão implorando por programadores COBOL, a linguagem que nunca morre.

 

Governadora Laura Kelly do Kansas disse:

 

“Muitos dos nossos Departamentos de Trabalho em todo o país ainda estão no sistema COBOL. Você conhece uma tecnologia muito, muito antiga”, disse Kelly na terça-feira. “Nosso Departamento do Trabalho reconheceu que isso era um problema e tinha iniciado a modernização, e, infelizmente, isso é algo que leva tempo. Este (vírus) interferiu e eles tiveram que cessar a transição para um sistema muito mais robusto. Então eles estão operando em coisas muito velhas.

O governador de Nova Jersey, Phil Murphy, fez uma aparição na televisão para implorar para que os programadores da COBOL ajudassem.

Então, como você pode aprender COBOL, ganhar muito dinheiro, e salvar muitas agências estatais que precisam de um novo código para lidar com todos os novos programas de estímulo do governo?

 

Vamos descobrir.

 

Cobol? O que é esse COBOL?

 

COBOL significa COmmon Business Oriented Language. Uma das primeiras línguas de alto nível, foi montada por um grupo patrocinado pelo Departamento de Defesa para desenvolver uma linguagem de negócios comum. Esse grupo passou a ser chamado de CODASYL — o Comitê de Linguagens de Sistemas de Dados — e definiu uma “linguagem comum orientada para negócios”, a partir do FLOW-MATIC de Grace Hopper e outras linguagens, incluindo o AIMACO da Univac e o COMTRAN da IBM. A linguagem resultante passou por mais revisões, mas rapidamente se tornou a linguagem dominante para a construção de sistemas de negócios, e tem permanecido dominante desde então.

Muitas empresas ainda usam COBOL, incluindo IBM, UPS e Cigna. Mario Ceballos, engenheiro de software da Cigna, me disse: “A sintaxe é mantida simples para permitir que não-programadores (“The Business”) leiam e compreendam. COBOL é feito para ser explícito, porque não deve haver espaço para suposições.

Claro, teve seus críticos. Em 1975, Edsgar Dijkstra proclamou famosamente que “o uso de COBOL aleija a mente; seu ensino deve, portanto, ser considerado como um crime[sic].” Isso, sem dúvida, levou ao declínio do ensino de COBOL nas universidades, mas permaneceu a linguagem empresarial dominante.

Mas encontrar pessoas com habilidades COBOL pode ser difícil. “O mainframe é uma plataforma muito difícil de aprender, e isso se deve ao custo”, disse Ceballos. “As pessoas físicas não têm dinheiro para pagar para alugar um mainframe. Uma quantidade muito pequena de escolas ensinam cursos sobre mainframes e COBOL. Quando a IBM começou o trabalho remoto e a terceirização, eles pararam de incentivar escolas americanas a ministrar cursos em Mainframes e COBOL. A piscina de talentos mudou de on-shore para off-shore. Qualquer talento local será caro com suas taxas de consultoria.”

 

Por que a COBOL ainda é dominante?

 

Comparado com as linguagens de programação comuns hoje em dia, o COBOL é diferente, e de certa forma muito limitado: você não pode fazer alocação dinâmica de memória, você não pode acessar facilmente recursos de baixo nível do sistema operacional ou arquitetura de computador particular. As formas mais comuns da linguagem não podem usar recursão. Você nunca iria querer escrever um compilador em COBOL. Um estudante de ciência da computação apresentado com COBOL ficaria chocado.

Este é um erro de categoria. Na terminologia moderna, o COBOL é na verdade uma linguagem específica de domínio,específica para o domínio particular da programação de negócios. Robert Glass identificou maneiras específicas em que o COBOL é mais adequado à programação de negócios do que a línguas de propósito geral, entre elas:

 

Uma linguagem orientada para os negócios precisa declarar, gerenciar e manipular dados heterogênios. Os programas de negócios misturam cordas de comprimento fixo e variável, pontos flutuantes, inteiros e dados decimais com abandono selvagem em estruturas de registros complicadas, muitas vezes com peças variáveis. Os programadores de banco de dados estão familiarizados com algumas dessas questões, e ferramentas de mapeamento objeto-relacional tropeçam nessas complexidades regularmente.

Os dados comerciais e financeiros precisam ser gerenciados usando verdadeiros tipos de dados decimais. Os sistemas contábeis devem estar corretos até o último dígito decimal e precisam reproduzir exatamente os resultados do cálculo manual; números convencionais de pontos flutuantes levam a complexidades e erros.

Uma linguagem orientada para os negócios precisa acessar e manipular grandes quantidades de dados estruturados com registros mantidos externamente.

Agora, nada disso está além das capacidades das linguagens de programação de propósito geral, é claro. Mas na COBOL, é nativo da língua.

Podemos debater a necessidade de COBOL, mas o fato é que existem centenas de bilhões de linhas de COBOL, e as tentativas de migrar para longe da COBOL não foram geralmente bem sucedidas.

 

Seu primeiro programa COBOL

 

Os arquivos de origem são arquivos de texto simples. Ter um editor de programação útil com suporte a idiomas é tão conveniente para o COBOL quanto qualquer outro idioma, se não mais. A coisa mais fácil para um iniciante é usar o Visual Studio Code, o único concorrente para meus afetos desde o EMACS.

Há surpreendentemente muitas extensões VSCode para COBOL. Agora, estou usando o colorador de código bitlang e o suporte à linguagem Broadcom COBOL. Muitos dos outros são destinados à programação de pessoas em um ambiente de mainframe, mas isso adiciona complexidade que não precisamos para uma introdução.

 

Então, resumindo, para começar a experimentar com COBOL:

 

Baixe e instale o Visual Studio Code se você ainda não tiver.

 

Instale as extensões de suporte de linguagem bitlang.cobol e Broadcom COBOL.

 

Instale GnuCOBOL. (Honestamente, se alguma coisa vai causar problemas, será isso. A instalação do Homebrew no MacOS funcionou bem, e eu não tenho outros sistemas para testar. No Windows, o MicroFocus tem um teste gratuito para suporte ao Visual Studio COBOL e ao Azure para experimentação.)

 

Aí está você, você instalou tudo e está pronto para escrever seu primeiro programa COBOL. Como é tradicional, começaremos com o seu programa, “Olá, mundo”.

 

 

Então aqui está sua primeira surpresa como um novo programador COBOL: COBOL se preocupa com em que coluna seu código está. Em um programa TRADICIONAL DE COBOL, a fonte possui vários componentes:

 

 

As colunas 1-6 estão lá para um número de sequência. A coluna 7 é chamada de área indicadora; em geral, é usado principalmente para indicar comentários colocando um asterisco ‘*’ nessa coluna. O código então vai nas colunas 8 a 72, e as colunas 73-80 são basicamente gratuitas para o uso dos programadores.

 

 

 

Isso tudo é baseado nos dias em que colocamos nossa fonte em cartões Hollerith de 80 colunas.

 

 

Os compiladores COBOL modernos também aceitam um formato gratuito que não força seu código para a camisa de força de 80 colunas, mas uma proporção muito grande de código existente ainda está no formato de imagem de cartão. Por enquanto, vamos ficar com imagens de cartas.

 

 

 

Preparem-se: COBOL não é uma linguagem estruturada em blocos como quase qualquer outra língua que você já usou. Um dos principais objetivos de design da COBOL desde o início foi que ele deveria ser “auto-documentador” com uma sintaxe semelhante ao inglês. Em vez de ter funções ou subrotinas e blocos, temos divisões, seções, parágrafose declarações. (Veremos algo quase como uma subrotina com o verbo PERFORM abaixo.)

 

 

 

Certo, também temos verbos para operadores de COBOL.

 

 

Aqui está “Olá, Mundo” na COBOL:

 

 

IDENTIFICATION DIVISION.

 

PROGRAM-ID. HELLO.

 

PROCEDURE DIVISION.

 

DISPLAY “Hello, world”.

 

END PROGRAM HELLO.

 

 

 

Comparado com algumas línguas é um pouco wordy, mas honestamente não tão ruim. Compare-o com uma versão Java simples:

 

 

 

public class Hello {

 

public static void main(String[] args){

 

System.out.println(“Hello, world!”);

 

}

 

}

 

Como todos os programas “Olá, mundo” não faz muito — mas se lhe disseram que é preciso 90 linhas para escrever um programa básico em COBOL, bem, você foi enganado.

 

 

 

Agora vamos desmontar o programa “Hello world” para nosso primeiro exemplo.

A primeira linha é:

 

IDENTIFICATION DIVISION.

 

Os programas COBOL sempre têm pelo menos uma divisão de identificação e uma divisão de procedimentos. A divisão de identificação tem um parágrafo importante, o PROGRAM-ID. Você precisa dar um nome ao programa aqui. O nome não precisa corresponder ao nome do arquivo ou praticamente qualquer coisa, exceto quando seu programa COBOL está sendo chamado de outro programa COBOL. Isso é através do verbo CALL que não vamos cobrir.

 

Precisamos ter uma ID do programa, então adicionamos

 

IDENTIFICATION DIVISION.

 

PROGRAM-ID. HELLO.

 

 

 

Há muitas outras coisas que geralmente vão para a divisão de identificação. Vou adicionar alguns exemplos comuns.

 

 

 

IDENTIFICATION DIVISION.

 

PROGRAM-ID. HELLO.

 

AUTHOR. CHARLES R MARTIN.

 

DATE-WRITTEN. 2020-APR-11.

 

 

 

Em ambientes modernos, no entanto, estes são comentários.

 

 

 

Falando em ambientes modernos, a propósito, a COBOL não requer todas as tampas como eu tenho usado. GnuCOBOL ficaria perfeitamente feliz com

 

 

 

identification division.

 

program-id. tut2.

 

author. charlie martin.

 

procedure division.

 

display “hello, world”.

 

end program tut2.

 

 

 

Só estou tendo um pouco de nostalgia de olhos enevoados aqui.

 

 

 

Não me julgue. Então vamos terminar nosso “Olá, mundo”. A parte de execução de um programa COBOL está na divisão de procedimentos.

 

 

 

IDENTIFICATION DIVISION.

 

PROGRAM-ID. HELLO.

 

PROCEDURE DIVISION.

 

DISPLAY “Hello, world”.

 

END PROGRAM HELLO.

 

Há mais um pouco de formato de imagem de cartão aqui. Observe que “DISPLAY “Hello, world” está recuado quatro colunas. Isso porque a parte da coluna 8-72 na verdade tem duas partes: a seção A, da coluna 8-11, e a seção B da coluna 12. Divisões, seções e parágrafos precisam ser iniciadas na seção A; as declarações de código devem começar na seção B.

 

Exemplo de COBOL estendido

 

Claro, “Hello, World” realmente não lhe dá uma boa imagem para qualquer idioma, então vamos olhar um pouco mais fundo no COBOL com algo que pelo menos se assemelha a um programa de negócios real. Vamos usar um exemplo bastante comum: calcular um contracheque para funcionários por hora, incluindo impostos federais, estaduais e fiscais.

 

Tendo feito isso, posso dizer que isso não é uma coisa fácil de fazer na realidade — as tabelas fiscais são complexas e arcaicas — então vamos simplificar e fazer a alíquota federal 16,4%, declarar 7% e fixar a taxa FICA em 6,2%, enquanto escolhemos cuidadosamente nossa taxa de pagamento e horas trabalhadas para não atingir o limite fica. Só estamos fazendo trabalhadores por hora, e calculamos horas acima de 40 como horas extras a 1,5 vezes a taxa básica.

 

 

 

Não vale a pena repetir a divisão de identificação. Começamos com uma nova divisão, a divisão ambiental,que existe para coletar a interface entre o programa COBOL e o mundo exterior.

 

 

 

ENVIRONMENT DIVISION.

 

INPUT-OUTPUT SECTION.

 

FILE-CONTROL.

 

SELECT TIMECARDS

 

ASSIGN TO “TIMECARDS.DAT”

 

ORGANIZATION IS LINE SEQUENTIAL.

 

 

 

Mais uma vez, vamos exercitar alguns aspectos do COBOL que serão surpreendentes para as pessoas que não trabalharam no mundo de processamento de dados orientado para registros. No UNIX, Linux, MacOS ou Windows, um registro é uma linha de texto seguida por algum caractere ou caracteres de fim de linha. Isso causa um problema para o COBOL tradicional, mas os compiladores COBOL implementam uma extensão fora do padrão para lidar com isso: ORGANIZATION IS LINE SEQUENTIAL.

 

 

 

A seção de saída de entrada simplesmente atribui um nome simbólico (TIMECARDS) ao arquivo e o conecta ao arquivo no ambiente externo.

 

 

 

A próxima parte do programa descreve os dados com os que estamos trabalhando. No COBOL, todos os dados são geralmente presumidos como contidos em registros de formato fixo. Esses registros têm uma estrutura hierárquica indicada pelos números de nível: 01 é o nível superior, e as subdivisões recebem números mais altos. Eu usei 02, 03, e assim por diante, mas isso é arbitrário; costumávamos usar 01, 05, e assim por diante, porque era mais fácil inserir cartões sem repunchá-los todos.

 

 

 

Mas agora introduzimos outra divisão, a divisão de dados. Como você provavelmente adivinhou, isso é para dados. Estamos usando duas seções. Primeiro é a seção de arquivos.

 

 

 

DATA DIVISION.

 

FILE SECTION.

 

FD TIMECARDS.

 

01 TIMECARD.

 

02 EMPLOYEE-NAME.

 

03 EMP-FIRSTNAME PIC X(10).

 

03 EMP-SURNAME PIC X(15).

 

02 HOURS-WORKED PIC 99V9.

 

02 PAY-RATE PIC 99.

 

 

 

Esta é a nossa entrada, que é o formato fixo; estamos conectando-o ao arquivo TIMECARDS com a linha FD A seguir, é a seção de armazenamento de trabalho. Parece um pouco estranho se você não está acostumado com COBOL, mas na verdade, eu estou apenas declarando variáveis que eu vou usar no programa mais tarde.

 

 

 

WORKING-STORAGE SECTION.

 

* temporary variables in computational usage.

 

* intermediate values for computing paycheck with overtime

 

01 REGULAR-HOURS PIC 9(4)V99 USAGE COMP.

 

01 OVERTIME-HOURS PIC 9(4)V99 USAGE COMP.

 

01 OVERTIME-RATE PIC 9(4)V99 USAGE COMP.

 

01 REGULAR-PAY PIC 9(4)V99 USAGE COMP.

 

01 OVERTIME-PAY PIC 9(4)V99 USAGE COMP.

 

* computed parts of the paycheck

 

01 GROSS-PAY PIC 9(4)V99 USAGE COMP.

 

01 FED-TAX PIC 9(4)V99 USAGE COMP.

 

01 STATE-TAX PIC 9(4)V99 USAGE COMP.

 

01 FICA-TAX PIC 9(4)V99 USAGE COMP.

 

01 NET-PAY PIC 9(4)V99 USAGE COMP.

 

A parte desconhecida disso é a cláusula PIC (ou PICTURE). COBOL não é fortemente digitado. Em vez disso, mais como C, cada declaração está identificando um pedaço de memória; o PIC diz ao COBOL como interpretar essa memória com uma “imagem”. Neste caso, 9(4)v99 diz ao COBOL que um pedaço de memória chamado, por exemplo, REGULAR-HOURS deve ser interpretado como um número de seis dígitos que se supõe ter um ponto decimal (o V) na frente dos dois últimos dígitos. USAGE COMP diz à COBOL para usar um formato interno adequado à aritmética rápida. O que esse formato realmente é é um pouco flexível e depende da arquitetura, o que significa que é melhor você não depender dele ser o mesmo em todos os lugares.

 

 

 

Se você quiser ter certeza disso, não use USAGE COMP, o que leva a outra parte dos dados, o formato para uma verificação ser saída. Esses campos são o uso padrão, que é imprimível onde USAGE COMP não é.

 

 

 

01 PAYCHECK.

 

02 PRT-EMPLOYEE-NAME PIC X(25).

 

02 FILLER PIC X.

 

02 PRT-HOURS-WORKED PIC 99.9.

 

02 FILLER PIC X.

 

02 PRT-PAY-RATE PIC 99.9.

 

02 PRT-GROSS-PAY PIC $,$$9.99.

 

02 PRT-FED-TAX PIC $,$$9.99.

 

02 PRT-STATE-TAX PIC $,$$9.99.

 

02 PRT-FICA-TAX PIC $,$$9.99.

 

02 FILLER PIC X(5).

 

02 PRT-NET-PAY

 

 

 

A única coisa realmente divertida aqui é que temos alguns novos formatos PIC $,$$9.99 tem um sinal de dólar líder que é sempre contra o dígito mais à esquerda, e $*,**9.99 preenche o espaço entre o sinal de dólar e os primeiros dígitos com *.

 

 

 

Vou mostrar todo o programa em breve, mas eu quero apontar a forma como a COBOL faz matemática, como em COMPUTE-GROSS-PAY:

 

 

 

COMPUTE-GROSS-PAY.

 

IF HOURS-WORKED 40 THEN

 

MULTIPLY PAY-RATE BY 1.5 GIVING OVERTIME-RATE

 

MOVE 40 TO REGULAR-HOURS

 

SUBTRACT 40 FROM HOURS-WORKED GIVING OVERTIME-HOURS

 

MULTIPLY REGULAR-HOURS BY PAY-RATE GIVING REGULAR-PAY

 

MULTIPLY OVERTIME-HOURS BY OVERTIME-RATE

 

GIVING OVERTIME-PAY

 

ADD REGULAR-PAY TO OVERTIME-PAY GIVING GROSS-PAY

 

ELSE

 

MULTIPLY HOURS-WORKED BY PAY-RATE GIVING GROSS-PAY

 

END-IF

 

 

 

Sim, cobol padrão faz você soletrar.

 

 

 

Então aqui está o programa completo.

 

 

 

IDENTIFICATION DIVISION.

 

PROGRAM-ID. PAYCHECKS.

 

AUTHOR. CHARLES R. MARTIN.

 

DATE-WRITTEN. 2020-APR-15.

 

ENVIRONMENT DIVISION.

 

INPUT-OUTPUT SECTION.

 

FILE-CONTROL.

 

SELECT TIMECARDS

 

ASSIGN TO “TIMECARDS.DAT”

 

ORGANIZATION IS LINE SEQUENTIAL.

 

DATA DIVISION.

 

FILE SECTION.

 

FD TIMECARDS.

 

01 TIMECARD.

 

02 EMPLOYEE-NAME.

 

03 EMP-FIRSTNAME PIC X(10).

 

03 EMP-SURNAME PIC X(15).

 

02 HOURS-WORKED PIC 99V9.

 

02 PAY-RATE PIC 99.

 

WORKING-STORAGE SECTION.

 

* temporary variables in computational usage.

 

* intermediate values for computing paycheck with overtime

 

01 REGULAR-HOURS PIC 9(4)V99 USAGE COMP.

 

01 OVERTIME-HOURS PIC 9(4)V99 USAGE COMP.

 

01 OVERTIME-RATE PIC 9(4)V99 USAGE COMP.

 

01 REGULAR-PAY PIC 9(4)V99 USAGE COMP.

 

01 OVERTIME-PAY PIC 9(4)V99 USAGE COMP.

 

* computed parts of the paycheck

 

01 GROSS-PAY PIC 9(4)V99 USAGE COMP.

 

01 FED-TAX PIC 9(4)V99 USAGE COMP.

 

01 STATE-TAX PIC 9(4)V99 USAGE COMP.

 

01 FICA-TAX PIC 9(4)V99 USAGE COMP.

 

01 NET-PAY PIC 9(4)V99 USAGE COMP.

 

* print format of the check

 

01 PAYCHECK.

 

02 PRT-EMPLOYEE-NAME PIC X(25).

 

02 FILLER PIC X.

 

02 PRT-HOURS-WORKED PIC 99.9.

 

02 FILLER PIC X.

 

02 PRT-PAY-RATE PIC 99.9.

 

02 PRT-GROSS-PAY PIC $,$$9.99.

 

02 PRT-FED-TAX PIC $,$$9.99.

 

02 PRT-STATE-TAX PIC $,$$9.99.

 

02 PRT-FICA-TAX PIC $,$$9.99.

 

02 FILLER PIC X(5).

 

02 PRT-NET-PAY PIC $*,**9.99.

 

* Tax rates — 77 level aha!

 

77 Fed-tax-rate Pic V999 Value Is .164 .

 

77 State-tax-rate Pic V999 Value Is .070 .

 

77 Fica-tax-rate Pic V999 Value Is .062 .

 

* 88 Level is for conditions.

 

01 END-FILE PIC X.

 

88 EOF VALUE “T”.

 

PROCEDURE DIVISION.

 

BEGIN.

 

PERFORM INITIALIZE-PROGRAM.

 

PERFORM PROCESS-LINE WITH TEST BEFORE UNTIL EOF

 

PERFORM CLEAN-UP.

 

STOP RUN.

 

INITIALIZE-PROGRAM.

 

OPEN INPUT TIMECARDS.

 

PROCESS-LINE.

 

READ TIMECARDS INTO TIMECARD

 

AT END MOVE “T” TO END-FILE.

 

IF NOT EOF THEN

 

PERFORM COMPUTE-GROSS-PAY

 

PERFORM COMPUTE-FED-TAX

 

PERFORM COMPUTE-STATE-TAX

 

PERFORM COMPUTE-FICA

 

PERFORM COMPUTE-NET-PAY

 

PERFORM PRINT-CHECK

 

END-IF.

 

COMPUTE-GROSS-PAY.

 

IF HOURS-WORKED 40 THEN

 

MULTIPLY PAY-RATE BY 1.5 GIVING OVERTIME-RATE

 

MOVE 40 TO REGULAR-HOURS

 

SUBTRACT 40 FROM HOURS-WORKED GIVING OVERTIME-HOURS

 

MULTIPLY REGULAR-HOURS BY PAY-RATE GIVING REGULAR-PAY

 

MULTIPLY OVERTIME-HOURS BY OVERTIME-RATE

 

GIVING OVERTIME-PAY

 

ADD REGULAR-PAY TO OVERTIME-PAY GIVING GROSS-PAY

 

ELSE

 

MULTIPLY HOURS-WORKED BY PAY-RATE GIVING GROSS-PAY

 

END-IF

 

.

 

COMPUTE-FED-TAX.

 

MULTIPLY GROSS-PAY BY FED-TAX-RATE GIVING FED-TAX

 

.

 

COMPUTE-STATE-TAX.

 

* Compute lets us use a more familiar syntax

 

COMPUTE STATE-TAX = GROSS-PAY * STATE-TAX-RATE

 

.

 

COMPUTE-FICA.

 

MULTIPLY GROSS-PAY BY FICA-TAX-RATE GIVING FICA-TAX

 

.

 

COMPUTE-NET-PAY.

 

SUBTRACT FED-TAX STATE-TAX FICA-TAX FROM

 

 

 

Aqui está o arquivo de dados:

 

 

Charlie Martin 41015

 

Strong 32007

 

e aqui está a saída:

 

 

 

$ cobc -x paycheck.cob

 

$ ./paycheck

 

Charlie Martin 41.0 15.0 $622.50 $102.09 $43.57 $38.59 $**438.25

 

Terry Lacy 32.0 07.0 $224.00 $36.73 $15.68 $13.88 $**157.71

 

$

 

Recursos para aprender COBOL

 

Na verdade, há uma grande número de cursos e livros para aprender COBOL. Muitos dos cursos são do exterior, porque as empresas de offshoring vêm atendendo à demanda por COBOL há anos.

Comprei e corri através deste curso da Udemy,que é muito bom, e entre vários livros da COBOL no Kindle, gosto de Beginning COBOL for Programmers de Michael Coughlan. Há uma montanha de vídeos no YouTube, dos quais eu só olhei para alguns. Este parece bom, mas procure por COBOL e você encontrará muito mais.

Haverá mais por vir também. Em 9 de abril, a IBM e o Open Mainframe Project anunciaram um projeto conjunto para conectar estados com habilidades COBOL e ensinar programação cobol. Possui vários recursos, incluindo um quadro de avisos para programadores COBOL que querem voltar ao negócio, e o início de um curso de COBOL de código aberto.

 

Por que a COBOL tem uma má reputação?

 

Como você pode ver a partir deste pequeno exemplo, COBOL não é como sua linguagem de programação normal. Você não pode escrever um compilador ou um módulo de kernel em COBOL, e a sintaxe não é o que crescemos para esperar. Mas, em seguida, considere outra linguagem comum específica de domínio: SQL. A sintaxe é meio estranha, e a semântica depende da álgebra relacional.

“A programação no mainframe dá-lhe um vislumbre de como o software costumava ser construído”, disse Ceballlos. “É como uma cápsula do tempo para qualquer programador moderno. A maior parte ainda é muito manual em comparação com as modernas técnicas de DEVOPS e automação.”

COBOL é, de muitas maneiras, uma linguagem de programação antiquada e ruim. Mas por seu domínio particular, é melhor do que qualquer outra coisa.

Mostrar mais

Artigos relacionados

Deixe um comentário

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

Botão Voltar ao topo