Article image
Vagner Bellacosa
Vagner Bellacosa11/05/2023 20:37
Compartilhe

COBOL HIGHLANDER

     Parem de matar o COBOL

    Salve padawan, após uma longa ausencia em nossos artigos, hoje voltei a sentar pegar minha pena e pergaminho e voltar a escrever, transmitindo um pouco das experiência dos velhos CPDs nas memórias do Tiozão do Mainframe, seu velho dinossauro coboleiro.

    image O motivo de escrever este artigo e jogar mais querosene na fogueira dos detratores do Cobol, defendendo e acrescentando argumentos para que tu, jovem padawan aprenda a programa em COBOL.

    Por mais artigos negativos, vozes contra, ataques a honra e capacidade, o nosso bom e velho COBOL é pareo duro para qualquer desafio, não importante o ambiente, o equipamento e a necessidade, o COBOL é o canivete suiço das linguagens de programação.

    Canivete suíço na programação

    image O COBOL foi criado 1959, baseado numa linguagem anterior CODASYL, pensado para não cientistas ou engenheiros, desejava-se uma linguagem de programação fácil de ler e entender pelo leigo, com uma curva de aprendizado pequena e de fácil codificação para economizar recursos e entregar soluções o mais rápido possível.

    Surgiu numa época que não existiam Bancos de Dados, tampouco monitores sofisticados e nem mesmo o mouse, nos primórdios usavam papel perfurado para codificar, sendo muito difícil a depuração e correção de erros, por isso, um bom programador tinha que fazer bem a primeira.

    Na sua especificação definiu-se que seria uma linguagem para uso comercial, ou seja, não existia a necessidade de cálculos muito sofisticados e fórmulas matemáticas avançadas. Seu objetivo era atender aos requisitos dos militares e burocratas norte-americanos, que tinham necessidades reais de controle financeiro, contabilístico e de pessoal a serem tratados.

    No decorrer dos anos, ganhou inúmeros releases, onde a cada lançamento obtinha mais ferramentas e mantinha a integridade e compatibilidade com os códigos anteriormente escritos, ou seja, um programa COBOL 1960, se recompilado nos dias atuais, continuará funcionando com o mínimo de alteração, quiça nenhuma.

    Um código-fonte COBOL tem a magia de ser transportado para qualquer ambiente e pasmém, ao ser compilado, poderá ser executado num Mainframe, AS400, AIX, Linux para Mainframe/PC, Windows e não duvido nada, que exista uma versão para Android perdida por ai.

    Multiprocessamento Multicomputador Multiverso…

    image Brincadeiras a parte, o COBOL continua firme e forte funcionando em milhares de CPDs espalhados pelo Globo, mesmo quando um gestor desmiolado resolve colocar a carreira em risco, para migrar para outras linguagens, o custo desta epopeia fazem-no voltar a si, e postergar essa ideia insana.

    Na história inúmeras empresas migraram, fizeram downsize, mas no final tiveram que voltar ao Mainframe, pois os custos ficaram exorbitantes e nas outras linguagens e equipamentos, faltam a padronização necessária e mesmo a performance que apenas o COBOL e sua família oferecem.

    Lembre-se quando o COBOL surgiu existiam apenas os arquivos sequenciais, nas evoluções seguintes vieram os arquivos indexados VSAM, os Bancos de Dados NoSQL, evoluíram para os Bancos de Dados SQL, inúmeros periféricos foram criados e evoluídos para ajudarem no processamento de Dados.

    A memória RAM que era limitada e caríssima, tornou-se banal e de fácil aquisição, possibilitando programas maiores e mais complexos, a fácil integração com outros programas em outras linguagens, através de uma simples chamada CALL, permitiram a longevidade da linguagem, inclusive as limitações de cálculos matemáticas complexos sumiram nas versões mais recentes, permitindo processamentos poderosos.

    Ciumes e detratores

    image Meu primeiro programa COBOL foi codificado em 1989, no colegial técnico em processamento de Dados e tinha dois professores, um de Cobol e outro de Clipper, que curiosamente vivia dizendo que o Cobol, já erá, pois o Clipper era isso e aquilo, fácil, pratico e etc etc etc… posteriormente outras linguagens apregoaram o mesmo, porém elas passaram a história, desculpem-me os viúvos do Delphi, VB e outras linguagens engolidas pela evolução tecnológica.

    Com os cabelinhos prateados, reconheço não existe linguagem eterna e um dia o Cobol, poderá sumir, o que me consola e coloca um baita sorriso em meu rosto e que irá ser daqui algumas décadas, afinal o COBOL não é estático e tampouco imutável, sendo sempre atualizado e preparado para as novas solicitações do mercado, pronto a atender as necessidades de qualquer empresa.

    Rápido, robusto e performático

    image Desafio a qualquer programador, a codificar um programa mais performático e rápido que o COBOl, exceção aos de Assembler e C, qualquer linguagem dos dias atuais perderá essa parada, pois além da própria linguagem ser muito rápida, existem inúmeras ferramentas que aceleram ainda mais o processamento dos zetabytes.

    Claro que alguém ira gritar que a Nuvem permite acesso ilimitado a CPUs e Memorias, mas ai vem aquela famosa pergunta, quanto custa? Acompanhei algumas migrações para a Nuvem de sistemas Legados e infelizmente, ou felizmente para os Coboleiros, o custo final ficou muito elevado e o breakeven muitíssimo longo.

    Segurança, confiabilidade e Estabilidade

    image O mainframe é uma plataforma sexagenária e pergunto quantos vírus de computador atacaram e destruíram dados? Quantos ataques de ransonware objetivaram mainframes e sua valiosas bases de dados? Quantas vezes o RACF foi atacado e sucumbiu aos invasores?

    Procurem a vontade, mas não encontraram nada, nem mesmo existe um software antivírus nos mainframes, o negócio é robusto, confiável e aderante ao Six Sigma e se a empresa seguir as boas praticas e recomendações da IBM, o sistema será a prova de ataque nuclear e invasão alienígena.

    Aprenda a programar em COBOL

    image Meu maior conselho é aprenda Cobol, conheça essa linguagem, descubra o Zowe, o TSO, saiba o que é um job num JCL e suas inúmeras PROCS, explore o SDSF, classifique arquivos com o SORT ou ICETools, tenha sua senha revogada no RACF e peça ao Super-Operador para reativá-la.

    Verás que é uma linguagem user-friend, onde você tem total controle sobre as variáveis, sobre os complementos, defina os tipos de acesso de dados, aponte para arquivos sequenciais, arquivos indexados ou mesmo base de dados, apesar da dobradinha famosa COBOL/DB2, existem acessos a IMS/DB, Adabas, Oracle e sabe-se la que outro banco de dados poderá encontrar.

    São poucos comandos, não ultrapassam a duas centenas, as combinações são limitadas e as regras gramaticais da linguagem evitam que erros sejam cometidos, sei que é um pouco burocrático definir tudo, mas o poder que fornece ao programador é incrível. Tu sabes tudo o que está acontecendo, simples e transparente.

    Conclusão.

    Uma grande barreira a entrada, caiu por terra, no passado o custo dos cursos eram exorbitantes e os estudantes de informática tinham pouco acesso a material e exemplos. Hoje os cursos são baratos, inclusive com pós-graduação EAD, inúmeros artigos e exemplos nas páginas da IBM, bem como dezenas de cursos gratuitos na internet.

    Saiba padawan, só não aprende que não quer, com um pouco de esforço, uma googleada aqui e ali, estarás apto a codificar em Cobol e adentrar nos grandes cpds, conhecendo as maravilhas do universo Mainframe.

    Caso tenha alguma duvida, deixe nos comentários que terei o maior prazer em responder, compartilhar o conhecimento é uma prioridade e um dever de todo programador e asseguro-te meu neto estará codificando em Cobol daqui uns 30 anos.

    #DIO

    image

    image 

    Referência Bibliográfica

    WIKIPEDIA - A Enciclopédia Livre, faça parte, ajude actualizando ou criando verbetes http://www.wikipedia.org

    Google Books um repositório com milhões de livros digitalizados https://books.google.com/

    Internet Archive, tudo aquilo que um dia foi publicado veio parar aqui. https://archive.org/

    Biblioteca de ícones https://www.flaticon.com/

    image

    image Um momento jaba, divulgando um video e o canal das aventuras do Tiozão, visite El Jefe Midnight Lunch. Minha outra grande paixão as ferrovias, o transporte sobre trilhos e as maravilhas da engenharia mecanica as Locomotivas a vapor, homenagem a CIA Mogiana e sua rotunda na estação central de Campinas, memorias de outros tempos, da riqueza e progresso transportados nos carris, nos nossos antepassados que usaram o transporte ferroviaria na conquista do oeste bravio, as maravilhosas obras de arte da engenharia civil: https://youtu.be/lV9epQEn-0c

    image https://www.linkedin.com/in/vagnerbellacosa/

    image https://github.com/VagnerBellacosa/

    Pode me dar uma ajudinha no YouTube?

    image https://www.youtube.com/user/vagnerbellacosa

    Compartilhe
    Comentários (5)
    Luiz Café
    Luiz Café - 12/05/2023 14:40

    Ótimo artigo Vagner. Acredito que o conhecimento em COBOL é sem dúvidas um ótimo caminho para abrir várias portas no mercado de tecnologia.

    Fernando Araujo
    Fernando Araujo - 12/05/2023 14:38

    Seja bem-vindo de volta ao presente, caro Jedi!

    Estavas no futuro? Ou no passado?


    Confesso que também sou do tempo do COBOL, só que eu enveredei pelo caminho do FORTRAN, dos cálculos e da Engenharia.

    Agora me deu uma vontade grande (yo tengo ganas...) de escrever um artigo semelhante, mas sobre FORTRAN.


    Muita coisa que você fala dessa era dos mainframes me são familiares, porque eu também programava em FORTRAN em mainframes IBM (4341 e 360), nos início dos anos 80.

    Na empresa onde trabalho (CODATA), nós ainda usamos mainframe IBM para o sistema financeiro do Governo do Estado (SIAF), mas com a linguagem NATURAL e banco de dados ADABAS, turbinada por versões mais modernas da linguagem. A turma mais jovem foge do NATURAL/ADABAS como deve fugir de COBOL e FORTRAN.

    Já tentamos fazer downsizing aqui também, mas ainda é híbrido, pois continuamos dependendo do mainframe, com interações (entradas e saídas) feitas via web e em telas gráficas (nada de telas verdes ou pretas de caracteres em fonte Courier).


    Antes que eu desligue, gostaria de saber quais são esses artigos negativos sobre COBOL que você afirmou no início.


    Outra coisa: a velocidade de uma linguagem de programação não depende apenas dela, mas também da complexidade do algoritmo que ela executa, dos tempos de acesso aos dados gravados em disco e outras coisinhas. Depois, podemos fazer alguns testes entre COBOL, C e FORTRAN também (que é bem rápida!), bem como algumas das linguagens mais novas, como Python, Java, Javascript e outras. Seria um bom workshop para um grupo interessado. E daria um ótimo artigo técnico!

    André Bezerra
    André Bezerra - 12/05/2023 13:32

    Muito bom BELLACOSA,

    Agradeço por não esquecer C/C++ como superior ao COBOL ^^

    Se possível, nos convida para algum projeto remunerado em COBOL que tankamos esse Desafio.

    Vagner Bellacosa
    Vagner Bellacosa - 11/05/2023 22:02

    Verdade preciso entrar, ando meio off da plataforma

    Ricardo S.
    Ricardo S. - 11/05/2023 21:46

    Ele voltou..rss..Como o senhor não está no Codecamp?