O COBOL morreu? Vida longa ao Cobol!
- #Informática Básica
- #Boas práticas
- #Arquitetura de Sistemas
O COBOL morreu? Vida longa ao Cobol.
Conheça o processo de migraçao
Salve padawan, o tiozão pirou, que título nonsense é esse? Ultimamente tenho estado saudosista e falado muito do mainframe, mas não é minha culpa, ultimamente a Amazon tem feito muito publicidade do Cloude Computer AWS e as modernizações de sistema legados.
Um espirito de nostalgia se apossou deste renegado, que divagando um pouco nos textos e reportagens, mas espere, saiba que existe uma teoria em psicologia chamada de Percepção seletiva, em linhas gerais, nosso cérebro acaba selecionando temas e assuntos, que previamente nos interessam, criando um círculo virtuoso de retroalimentação, apontando sempre na mesma direção.
Com esse aparte voltamos ao título, afinal o Cobol não morreu, pelo menos por agora, pois saibam que existem muitos sistemas críticos, que funcionam a prova de hacker, a prova de erro e com custos controlados em milhares de empresas. Situação essa que se torna muito arriscado migrar para outras plataformas com seus riscos e dependências, afinal mexer naquilo que funciona detonara carreiras, caso de ruim, acredite, muitas vezes a casa cai.
Neste artigo vamos conversar sobre migração, modernização, cisão e aquisição de packages de softwares para substituir o Cobol no Mainframe, no passado os ERPs ameaçaram o reino dos grandes computadores, arranharam e morderam fatias de mercado, mas a prova do tempo foi cruel, veja o SAP, que a cada ano perde terreno para outras tecnologias, devido ao seu alto custo e falta de profissionais qualificados (mesmo problema do mainframe, curioso ne?).
Cobol na intimidade
Uma linguagem criada em 1958, ou seja, na altura que escrevo este humilde ponto de vista, ela completa 62 anos, num universo com tantas mudanças, inovações, modismos, transformações e evoluções. A guerra fria que impulsionou sua criação, terminou, tivemos o bug do milênio, crises financeiras em 1987, 1995, 2001, 2008 e agora a pandemia. Surgiram e desaparecem inúmeros gurus das mais loucas ideias e metodologias, linguagens de programação evaporaram e bases de dados morreram.
Mas devemos pensar, imaginar e analisar, o que gerou essa longevidade do COBOL no turbulento mundo da informática, em que os releases são uma constante, sopas de letrinhas surgem todos os anos aos montes, mudanças e grandes transformações inspirada por acadêmicos?
A resposta para isso e sendo bem simplista: a segurança de fazer o que faz e continuar a fazer em qualquer compilador, sendo a sua maior vantagem é que aquilo que programamos, é aquilo que é compilado e executado na CPU do Computador, infelizmente nem todas as linguagens modernas com suas inúmeras opções de compilação e maquinas distintas, que nunca sabemos exatamente o que o processador está fazendo e nem se está sendo performática.
A segurança é um fator relevante, afinal os mainframes são blindados com várias camadas de segurança, o RACF é o grande xerife do pedaço e até onde conheço nem o melhor hacker conseguiu penetrar em todas as camadas, com isso garantindo a segurança da informação e dos processos. Claro que existem inúmeras lendas urbanas de algum analista desonesto, que criou um programa que roubava centavos das contas e enriqueceu, porém, nunca estive em uma empresa que isso realmente tenha acontecido. Afinal a DAI monitora a tudo e a todos e seus analistas acionam alertas ao menor sinal de fumaça.
Vantagens do Cobol
Uma linguagem performática um programa Cobol puro associado com o aplicativo SORT é imbatível em tempos de processamento, mesmo quando coloca-se monstrinhos comedores de CPU, tais como arquivos VSAM e acesso a base de dados Adabas, IMS, IDMS ou DB2, ainda assim ele continua incrivelmente rápido para grandes quantidades de registros. Nenhuma das linguagens novas vencera neste quesito, o mais próximo seria o Python.
Uma vantagem é que o Z/OS tem todas as camadas separadas, cada feudo tem seu senhor, e os guardas do portão, só deixam entrar quem cumprir as regras. Por isso o CICS e suas trocas de áreas de memória com servidores web, continua tão em voga no século XXI. As principais barreiras foram rompidas com o aumento das áreas de memoria, subindo e descendo entre plataformas e as bases de dados atualizadas em todas as modernidades, que as veze acaba dando bem ruim.
Um pouco de História do Cobol
Se conhece pode pular esse bloco, lembre-se que escrevo aos jovens padawans, perdoe o zelo do tiozão, a linguagem de programação de alto nível COBOL, um acrônimo de “Common Business-Oriented Language”, ou seja, na boa língua de Camões, Linguagem comum orientada a negócios.
Em sua estrutura tem pouco mais de 100 comandos, ou palavras reservadas, sendo muito rígido na escrita e formatação, sendo uma vantagem e ao mesmo tempo desvantagem, pois dificulta as mentes criativas a inventarem e florearem muito. A parte que mais gosto é a escrita clara e logica, quase conversacional com o programador, num dialogo ordenado nas clássicas divisões Identification, Environment, Data e Procedure.
Na sua origem, a principal vantagem era que um fonte COBOL era compilado em qualquer equipamento, e seus processamento e output eram o mesmo, surpreso? Nos primórdios cada computador tinha sua própria linguagem, tabela de caracteres e funcionamento despadronizado, colocando ordem e facilitando o treinamento de profissionais.
Devemos agradecer ao trabalho pioneiro de Grace Hopper, a grande mae/avo de todos os DEVs do planeta, que tinha a sua própria linguagem chamada de FlowMatic, que serviu de modelo e pontapé inicial as especificações do Cobol, o pessoal da Universidade da Pensilvânia amparada pelo governo americano, que precisava de um padrão único e confiável, em meio a tantos fornecedores e soluções, como soa moderno isso.
Com isso 3 comitês foram criados, litros de café consumidos e a solução acordada, foi juntar o Flowmatic + Comtran da IBM e Bob Berner è FACT da Honeywell, misturar tudo, pegando o que havia de melhor de cada um, o resto é história. Há 62 anos o Cobol domina o mundo dos computadores. A IBM não gostou muito e até tentou sabotar o negócio, criando sua própria top linguagem o PL/I, mas isso é história para outro dia.
Mas o ser humano é um bichinho complexo, logo outros players começaram a mudar, acrescentando ou retirando coisas, tornando o Cobol, irreconhecível e perdendo sua compatibilidade entre sistemas, quem conhece o JavaScript com o comitê ECMA Internacional, saiba que o COBOL foi pioneiro no ANSI/ISO, ao longo de seus anos teve 5 grandes versões, visando por ordem na casa, atualizar a linguagem e acrescentar novos paradigmas. Abaixo apresento os acrescimos e melhorias nos releases Cobol 1958.
- COBOL-1968
- COBOL-1974
- COBOL-1985
- COBOL-2002
- COBOL-2014
Cenário de migração
Com a crise financeira internacional de 2008, o Cobol sofreu um grande revés, pois centenas de Bancos e Seguradoras, faliram e com isso grandes soluções em mainframe, simplesmente evaporaram. As empresas sobreviventes, que anteriormente haviam gasto milhões de dólares no Bug do Milênio, a famosa fraude do Y2K, descrentes com o mainframe começou a tomar atitudes e aceleraram os processos migratórios, uma técnica comum foi migrar ao AIX, porem esta solução temerária não funcionou e muitos voltaram e outros seguiram adiante.
Atualmente jovem padawan, com certeza ira algum dia trabalhar em processos de migração, o Azure, o AWS e tantos outros players, estão famintos abocanhando nicho de mercado, existem softhouses que possuem frameworks para análise e engenharia reversa dos programas Cobol CICS DB2, meu conselho aprenda a debugar e ler programas. Treine com fluxogramas, use papel e caneta para documentar e seguir o fluxo do programa.
A programação procedural tem uma sequência lógica, claro que encontrar muito spaghetti code, culpa de gênios preguiçosos, mas em 90% dos casos, o programa é aditável, controlável e fácil de entender. Normalmente pego um programa e separo todas os parágrafos e suas funções, criando uma visão macro através dos JCL, rotinas externas e acessos a dados.
Não é um trabalho fácil, pois o tempo urge, porém quando se pratica, rapidamente avança e consegue ter uma visão única dos objetos, com a vantagem do sistemas em mainframe serem estanques e hierarquizados.
A leitura do programa é simples e fácil, facilitando o entendimento das instruções, eu conheço inúmeras linguagens de programação, porem nenhuma é tão fácil de interpretar, sendo bem clara. Experimente quando for ler um programa fonte Cobol, faça uma compilação e veja a listagem estendida com os copybook, procure ver quais as chamadas a programas externos, quais os arquivos sequenciais ele acessa, no acesso a Base de Dados, use o QMF ou Spufi, para entender a pesquisa e saber sua performance, e se for um iniciado use e abuse do Omegamon (se pensou no Digimon enganou-se).
Falando sobre Cobol
🚀 Mainframe, conheça um pouco sobre Sistemas Centrais
https://web.dio.me/articles/mainframe-conheca-um-pouco-sobre-sistemas-centrais
🚀 Cobol para padawan uma rapida olhadela
https://web.dio.me/articles/cobol-para-padawans-uma-rapida-olhadela
🚀 Por que um DEV padawan tem medo do Cobol?
https://web.dio.me/articles/por-que-um-dev-padawan-tem-medo-do-cobol
🚀 Descubra SEARCH e SEARCH ALL : Comandos COBOL
https://web.dio.me/articles/search-e-search-all-comandos-cobol
🚀 10 Segredos da Longevidade do Cobol
https://web.dio.me/articles/10-segredos-da-longevidade-do-cobol
Conclusão
Jovem padawan, me dispersei um pouco no tema, fiz a defesa do velho companheiro de trabalho e contei alguns fuxicos do CPD, é uma verdade os jovens e acadêmicos mesmo não gostando de sistemas legados, deveriam aprender um pouco das coisas de tiozões do mainframe.
Deixo meu maior conselho a você, aprenda COBOL, JCL, VSAM, CICS e afins, saiba ao menos interpretar, pois nos processos migratórios, saber ler um velho código fonte e entendê-lo, ajudara muito na criação de programas modernos em linguagens orientadas a objeto, afinal a lógica do negócio está escondida embaixo de camadas de poeira num velho programa Cobol.
Pensando também que muitos modismos surgiram e sumiram, pois, os custos são exponenciais e soluções que a princípio pareciam econômicas, vão encarecendo e tornando-se dispendiosas conforme aumentam os dados, conheci muitos diretores de informática que foram levados a guilhotina por suas decisões. Estude, aprenda e treine o mercado é muito dinâmico.
Espero ter ajudado ate o próximo artigo.
Referência Bibliográfica
WIKIPEDIA - A Enciclopédia Livre, faça parte, ajude atualizando 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/
Mais momento jabá, recordar é viver, no video de hoje, apresento algumas fotos em slide show, minha primeira vez em uma visita a Portugal, descobrindo diversos encantos de Lisboa em 20 fotos, aprecie com moderação, é um lugar lindo, visite Portugal, encontre meu blog, uma terra abençoada por Deus com maravilhas únicas, para distrair, visite meu vídeo e veja para onde fui desta vez: https://www.youtube.com/watch?v=QZ1Cjq24eQY
Bom curso a todos.
https://www.linkedin.com/in/vagnerbellacosa/
https://github.com/VagnerBellacosa/