por que aprender cobol?

TL;DR

Porque é uma linguagem de programação mais legal que muitas atuais, permite desenvolver facilmente programas mais sérios que muitas linguagens modernas e ainda está sendo utilizada e possui vagas para programadores. Ah, mas …..

Verbosidade?

Se você reclama que precisa escrever muito em COBOL, então você escolheu trabalhar em J certo? Não? Então você só pode estar esperando um futuro onde você pensa no sistema, pressiona enter e os programas se materializam no computador. Não existe outra alternativa. Ah, entendi. Você só está repetindo pois ouviu alguém dizer e acha legal. Sem problema. Mas vejamos o sem graça “Hello World” em Java e em COBOL. A versão Java poderia ser assim:

e em COBOL assim:

Em execução;

Basicamente, 5 linhas em cada linguagem para um programa legível. Ah, mas em Java eu posso escrever tudo na mesma linha. E daí? Vai ficar um programa menos legível e, se você não está em coma desde 1960, em COBOL também é possível escrever tudo na mesma linha. Ah, mas na minha linguagem eu escrevo só: print "Hello World". Grande coisa, poderia apenas digitar um ponto e sair um “hello World” (e pior que tem). Se você reparar, em COBOL é só display "Hello World". O resto serve para facilitar a legibilidade do programa como veremos depois.

É uma linguagem morta!

Realmente. Tanto que existe  vagas no mercado igual a Python ou Ruby e mais do que Pascal, não se escreveriam alguns bilhões de linhas por anos e não haveriam tantos fabricantes oferecendo suas implementações com Micro Focus, IBM, entre outros. Se está morta, não dá dinheiro e as empresas teriam falido. Os artigos irão se basear no GnuCOBOL. Finalmente, alguém de um banco me disse que estavam arrependidos de terem feito um sistema em Java. Deveriam ter feito em COBOL. Isso em 2016.

Por que GnuCOBOL?

Bem, é código aberto, possui uma boa compatibilidade com as versões atuais e existem diversos casos de utilização real e até substituição de ambientes comerciais. A versão estável é a 1.1 mas a 2.0 está em desenvolvimento. Pessoalmente eu acho que na versão estável falta algum polimento na entrada de dados  e a implementação de alguns detalhes. O número de desenvolvedores é pequeno então não espere novidades a cada semana.

Para instalar no Linux, sua distribuição já deve ter em algum repositório ou é só baixar os fontes de site GnuCOBOL, verificar as necessidades, compilar e instalar. Tem um executável para Windows que é só baixar  que a instalação é automática (até poderia ser melhorado para automatizar alguma coisa como a definição dos caminhos).

Você pode usar qualquer editor para criar os programas (agora que existe a possibilidade de um formato mais livre sem a necessidade de iniciar e terminar em colunas específicas. O Emacs e o Vim são duas opções. Tem o OpenCobolIDE que é mais específico para trabalhar com o GnuCOBOL (inicialmente era chamado de OpenCOBOL), o Geany também salienta sintaxe, o Visual Studio 2015 entre outros.

Mas o Dijkstra disse ….

que “O uso de COBOL mutila a mente, o seu ensino deve, portanto, ser considerado como uma infração penal”. Parece que ele não gostava de COBOL, BASIC, APL, etc.. Se ele estivesse vivo, provavelmente falaria mal de Python, Ruby, Java, Go, etc.. O fato é que não existe e, provavelmente nunca existirá, uma linguagem que seja difícil de escrever programas ruins.

A linguagem.

Como o próprio nome diz, COBOL (COmmon Business Oriented Language) é uma linguagem orientada ao uso em negócios. E as atividades de uma empresa pouco mudaram desde o surgimento. São tarefas repetitivas como faturamento, folha de pagamento, contabilidade e outras que podem ser passadas para o computador sem muitas alterações do que é feito manualmente. Se você tem um programa de contabilidade escrito em 1960, o processo provavelmente não sofreu alterações até hoje. Uma empresa que fabrica calçados, poderia usar o mesmo programa ainda hoje (com algumas melhorias é claro e como muitas fazem). Gastar dinheiro comprando programas mais novos está mais para  custo do que investimento.

Outro aspecto importante é que a linguagem já vem (e vinha) com tudo que é necessário para desenvolver um programa para uso comercial. Aproximadamente 99% + 1% da aplicações comerciais necessitam trabalhar com arquivos de dados (clientes, fornecedores, mercadorias, contas a pagar/receber, funcionários, etc. Se fosse utilizada uma linguagem como Pascal, C, etc., seria necessário a escolha de um SGBD (que nem sempre era fácil na época). COBOL pode trabalhar como PostgreSQ, MySQL, etc. mas geralmente é uma preocupação desnecessária em muitos casos (é claro que se o volume de dados for grande e crítico, um bom SGBD é um ótimo complemento).

Como a linguagem foi desenvolvida para que um “leigo pudesse ler e entender”, ela utiliza expressões que podem ser mais facilmente entendidas. Por exemplo, display "Endereço..:" at line 10 column 05 é perfeitamente identificável. Antigamente era mais trabalhoso digitar tudo isso mas os editores modernos podem completar as palavras enquanto se digita, o que facilita bastante e, no caso, é possível digitar display "Endereço..:" at 1005 o que seria praticamente normal para qualquer linguagem.

A linguagem possui divisões, seções e parágrafos e tem um formato parecido com uma receita culinária. Temos:

  • IDENTIFICATION DIVISION que seria a identificação da receita/programa como nome e outras informações.
  • ENVIRONMENT DIVISION que informa o ambiente que será utilizado cozinha, panelas, colheres, forno, etc.
  • DATA DIVISION que possui os dados ou os ingredientes que serão utilizados para o preparo/programa.
  • PROCEDURE DIVISION que diz exatamente como devemos proceder para fazer o bolo ou resolver o problema.

Apesar da estrutura ser mais rígida, os dados são facilmente localizáveis.

Considerações finais.

Eu pretendia falar mais sobre a programação em COBOL mas como ficaria muito longo, fica para o próximo artigo.

Anúncios