Alguns fatos bem interessantes (quase chocantes) sobre COBOL

Grace M. Hopper (a mãe do Cobol)

Sempre que ouvia falar em COBOL, vinha a imagem de uma tecnologia ultrapassada, esquecida e fedorenta.  Óbviamente,  fruto do meu preconceito. Na realidade, até então, eu nunca havia visto uma linha sequer de Cobol na minha frente!

Sei que muitos compartilham comigo esta primeira impressão também ficarão chocados com alguns fatos bem interessantes sobre Cobol:

  • Em 1999, o grupo Gartner fez uma pesquisa e concluiu que 80% das aplicações corporativas em execução no mundo naquele momento eram escritas em Cobol. Os outros 20% eram compartilhados pelas demais linguagens. Este dado tem 9 anos hoje, no entanto, a realidade não deve ser tão diferente nos dias atuais. Basta levar em consideração que BOA parte deste código estava presente em aplicações de missão crítica que, com alta probabilidade, ainda estão em execução hoje. Aliás, um estudo mais recente do mesmo instituto, comprovou que atualmente (artigo de 2006), há aproximadamente 180 bilhões de linhas de código escritas em Cobol em execução atualmente. Uou!
  • Cobol é orientado a objetos. O padrão Cobol 2002 aceita orientação a objetos. E tanto Fujitsu quanto Microfocus oferecem compiladores que suportam o paradigma. Mais interessante ainda: se você programa na plataforma .net, pode experimentar Cobol se quiser. Aliás, logo aparecerá um compilador para Java também. É apenas questão de tempo.
  • Em 2002, uma pesquisa do grupo Gartner comprovou a existência de dois milhões de programadores Cobol no mundo.
  • Cobol paga bem. Dada a necessidade por profissionais que saibam trabalhar com Cobol, e a escassez de mão-de-obra, temos como resultado um aumento significativo dos salários destes programadores. Os salários podem chegar a até R$ 12.000. No exterior, a situação é ainda melhor.
  • Programas feitos em Cobol costumam ficar em execução por décadas, ou seja, estes sistemas estão em execução não porque simplesmente “já existem”, mas sim porque são extremamente fáceis de se manter. Boa parte do problema do agora risível “bug do milênio” se deveu ao fato de que os desenvolvedores iniciais daquelas aplicações (a maior parte, escrita em… adivinha!) não imaginava que elas fossem durar tanto tempo.
    Dado que o ponto forte de venda de plataformas como Java e .net é justamente a facilidade de manutenção destes sistemas, soa quase “conspiracionista” pensar no porquê deste fato ser tão pouco mencionado.
  • A sintaxe não é horrível. Sério: eu imaginava que a sintaxe do Cobol fosse algo ridículamente complexo e, para a minha surpresa,  é incrívelmente simples. Parece inclusive linguagem coloquial, tal como nos exemplos abaixo:
MULTIPLY B BY B GIVING B-SQUARED.
MULTIPLY 4 BY A GIVING FOUR-A.
MULTIPLY FOUR-A BY C GIVING FOUR-A-C.
SUBTRACT FOUR-A-C FROM B-SQUARED GIVING RESULT-1.
COMPUTE RESULT-2 = RESULT-1 ** .5.
SUBTRACT B FROM RESULT-2 GIVING NUMERATOR.
MULTIPLY 2 BY A GIVING DENOMINATOR.
DIVIDE NUMERATOR BY DENOMINATOR GIVING X.

Como pode ser visto no exemplo acima, na realidade, é extremamente coloquial!
Claro, o exemplo que dei acima é péssimo. Trata-se da execução da fórmula de Bhaskara (lembra? Para se calcular equações de segundo grau…). Isto quer dizer que você não pode escrever fórmulas complexas em Cobol? Claro que não, veja o exemplo abaixo:

COMPUTE X = (-B + (B ** 2 - (4 * A * C)) **.5) / (2 * A)

Após tomar conhecimento destes fatos, uma pergunta fica: por que tão poucas pessoas sabem disto? Por que temos a impressão de que as linguagens mais utilizadas são Java, C/C++, C#, Visual Basic, PHP ou outras? Simples: por causa do mercado no qual Cobol é focado.

Cobol foi desenvolvido para a criação de aplicações de negócios, ou seja, não se trata aqui do mercado horizontal (que produz software de prateleira, ou componentes que são feitos para serem distribuídos), mas sim do mercado vertical, ou seja, Cobol é mais utilizado na confecção de aplicações internas para empresas. Aplicações estas que, normalmente, jamais sairão do ambiente para o qual foram desenvolvidas. Este é o porquê. Ao vermos uma aplicação como o Word, por exemplo, sendo vendida aos milhões, passamos a achar que C++ é uma das linguagens mais utilizadas no mundo. No entanto, nos esquecemos de que esta aplicação foi desenvolvida por apenas UM pequeno grupo de desenvolvedores (em comparação ao resto).

E por que devemos nos preocupar com Cobol?

  1. Tal como expus acima: porque Cobol possui um mercado imenso, assim como as oportunidades que podem surgir do mesmo. Mais um fato interessante com relação ao mercado: foi estimado que o custo de substituição de código Cobol por código em outra linguagem gira em algo em torno de US$ 25,00 por linha de Código Cobol substituida. Uou!
  2. Para acabar com a ilusão de que nossa plataforma de desenvolvimento é a “mais linda do mundo” por ser relativamente recente. Só para lembrar: Cobol foi desenvolvido no final da década de 50. Foi uma das primeiras linguagens de programação e, até hoje, é utilizada em massa com relativamente poucas alterações desde sua introdução.
    Cobol é a coisa mais linda do mundo? Não. É uma das sete maravilhas do mundo? Também não. Mas também, como pode ser visto, com certeza não é uma das maiores desgraças da história.
    Conseguirá Java e C# por exemplo esta façanha? Atualmente, só conheço três linguagens que conseguiram: Cobol, Lisp e Fortran

E eu sei Cobol? Ainda não. ;)

30 thoughts on “Alguns fatos bem interessantes (quase chocantes) sobre COBOL

  1. Na verdade, os programas existem a décadas porque nenhuma outra linguagem consegue ter a mesma performace em ambientes críticos. Por isso que bancos e grandes empresas no mundo ainda possuem o cobol como principal linguagem de desenvolvimento para mainframes.

    Responda

  2. Realmente, os mainframes ainda estão presente nos principais datacenters e muitas vezes suportando operações de missão crítica. O fato que eu não sabia é que o salário de um profissional que conheça esse negócio fosse bem expressivo.

    Responda

  3. já trabalhei um tempo com cobol e hoje trabalho com java, com projetos onde é necessário interação de java com programas Natural/ADABAS. Cobol é muito legal de se trabalhar… vc estimula muito a lógica….o cara no java/delphi que estiver sem um lógica apurada até que engana durante certo tempo… mas se o cara estiver do ládo de lá meu caro… não trabalha…alguém vai ter que fazer para ele.. pois trabalhas com arquivos de 1.000.000 de registros tendo que fazer balance line, etc., daí só abend mesmo…o cara que trabalha com cobol tem que também entender um pouco de JCL e como os arquivos são imensos também com o Easytrieve. Os bancos não largam mesmo o cara… como conseguir representar cifras com 18 casas decimais ? pois é… nosso amigo consegue e acima de dezoito casas vc ainda pode escolher o sinal (- negativo ou + positivo)

    Responda

    Rafael Reply:

    Cara, tudo bem? Atualmente trabalho com COBOL e estou querendo sair e começar a trabalhar com Java…como foi sua experiência na mudança? Obrigado.

    Responda

    Kico (Henrique Lobo Weissmann) Reply:

    Vou escrever um post sobre isto.

    Responda

    Kico (Henrique Lobo Weissmann) Reply:

    Num falei que ia escrever um post? http://www.itexto.net/devkico/?p=1649 :)

    Responda

  4. Show de bola este artigo. Coincidentemente antes de eu “topar” com este artigo, me chefe (trabalhou com cobol) disse que viu um artigo sobre o aumento de vagas para programadores cobol.
    O artigo serviu para quebrar o paradigma que tinha desta linguagem, que era o preconceito citado no começo do artigo.
    Abraços

    Responda

  5. tem 20 anos que pago minhas contas com cobol, e bota conta nisso.
    agora estou refazendo tudo para uma interface gráfica, só pra animar os operadores. mas por traz da da interface vai rodar a boa, velha e infálivel e poderosa Cobol…
    Só para constar,,,, tem vinte anos que estudo as linguagens “fogo-de-palha” que aparem incendiando o mercado com promessas de mundos e fundos , mas é só tentar montar um sistema com uma certa integração de dados, e o fogareu fira borralho. por isso não abro mão daquela que funciona sempre.

    Responda

  6. Gostaria de mais comentário e de adquirir mais conhecimento sobre
    esta linguagem de programaçao.

    Responda

  7. Só agora me deparei com teu artigo, mas mesmo assim vou comentar:

    Eu brinco que parte do preconceito se deve ao fato de ela ter sido criada por uma mulher, e naquela época.

    Diz a lenda que no lançamento da COBOL um homem levou uma lápide dizendo que ela estava morta.

    COBOL é o Jason das linguagens, e agora com tantos recursos implementados, Jason X.

    Abraços.

    Responda

  8. cara, cobol eh show hehehe, pena q nao sei quase nada, acabei lendo isso aqui pq to fazendo um artigo pra facudade sobre cobol.

    mas tem neguinho nadando em dinheiro com isso, meu professor msm ta meio q podre de rico hehehe, dono duma empresa q trabalha com cobol e java o.O

    pra qm pensa q cobol morreu, continua pensando neguin, pq eu vou estudar cobol e pegar o emprego e como tu nao vai ta na area o salario vai ser maior kkkkkkkkk

    abraco

    Responda

  9. Amigos, tem muita gente por fora da onda.
    Desenvolvo sistemas em Cobol desde 1984. Já estamos em 2010.
    Ainda tenho disquetes LONG PLAY, aqueles de 8″ com capacidade para 1,1 mb.
    Na época já falavam que Cobol estava morrendo. Até indicaram um tal de Dbase no lugar do Cobol. Aliás, o dito já morreu faz tempo e ainda tenho o livro dele.
    E no ano de 1992, bati de frente com um programador de Clipper que tambem
    falou ao meu diretor que Cobol já era. Nesta mesma empresa desenvolvi vários sistemas em Cobol.
    E na virada do milênio 1999/2000? Até gerente de banco falou ao meu cliente que meu sistema já era.
    Hoje estamos em 2010, tenho vários sistemas estáveis rodando em Cobol e vou arriscar um palpite: os mainframes irão dominar o mundo junto com o Cobol.
    Pois é galera , só o NOME COBOL é antigo pois esta ferramenta é moderna.
    Viva o Cobol!!!
    um grande abraço.

    Responda

    Ricardo J P Reply:

    Viva !!! desde 1984 também, Roberto!

    Responda

  10. Excelente post, mais eu gostaria de acrescentar a linguagem C como uma das linguagens que permanecera ate o final dos dias de muitas gerações que ainda estão por vim. E a principal razão disso são as milhares de linhas existentes em qualquer kernel de qualquer sistema operacional.

    Responda

    admin Reply:

    Oi Dann Luciano, fico feliz que tenha gostado. Valeu!

    Muito bem lembrado o caso do C. Mas eu digo mais: não está ai a tanto tempo só por causa dos bilhões (ou trilhões) de linhas de código legado. Esta ai também por ser, até hoje, uma das melhores alternativas para quem quer alto e baixo nível ao mesmo tempo.

    (eis uma idéia interessante para um post futuro. Valeu!)

    Responda

  11. Legal que Cobol evoluiu com o tempo….hoje trabalho com ele e consigo fazer tudo que outras linguagens fazem, sem nenhum problema….nfe, xml, banco de dados, web…tudo…Longa Vida ao Cobol…

    Responda

  12. Procure por COBOL no ebay.com, tem sempre um caminhão de livros anunciados.

    Você pode estudar COBOL de graça no site http://www.cadcobol.com a linguagem está toda descrita lá, e você pode testar seus programas COBOL em micros também, não é preciso ter um mainframe.

    Parabéns pelo artigo, é o melhor que já li tendo sido escrito por alguém que não conhece a linguagem, acho que a formula para esse resultado foi o respeito.

    Responda

    admin Reply:

    Oi Roberto, valeu cara!
    Fico muito feliz que tenha gostado. É um incentivo e tanto pra mim.

    Responda

  13. Cobol. Minha VIDA.
    Comecei a programar em 1988, já passei BUG do milênio, Delphi, Ddase, etc.
    Como diz o pessoal, pago minhas contas com COBOL queria ganhar mais, kkk.
    Uma coisa digo e afirmo, na época que meu Pai começou em 1972, já estava morrendo o COBOL, mais o médico e seu remédio são muito bons, kkkk.

    VIVA o COBOL..

    Responda

  14. Olha… assim como o Maurício Domingues, acima, trabalhei com cobol (na mesma equipe que ele) e sinceramente acho q é uma boa tecnologia sim!!! Não acho que vá morrer ou coisa assim…

    O único ponto que eu discordo completamente do seu artigo é: salários e demanda de trabalho. Assim como em qualquer outra tecnologia, o cobol não está pagando 12000 a muito tempo (só para caras muito fora da curva em situações especiais). Pela facilidade da sintaxe e do ambiente não ser tão complexo qto as linguagens novas, as empresas estão dando treinamento nessa tecnologia e com isso pagando beeeeeem menos do que o que tanto falam por aí.

    Sinceramente, se tiver alguma vaga em que as empresas estejam querendo pagar o que realmente o profissional de cobol vale, me avisem!!! :) Pq hoje, a realidade não só do cobol, mas da TI em geral é que os profissionais não são pagos pelo o que realmente fazem.

    Essa é minha observação.

    Muito bom o artigo, e muito feliz que as pessoas estejam querendo quebrar esse preconceito sobre essa tecnologia tão indispensável qto cobol! Parabéns!

    Responda

  15. Quando começou aquele zum-zumzum da virada do milênio, eu já embarcava em Plataformas da Petrobras. Escutava os Psedos TI’s comentado sobre o premio que Gates doaria a quem se safasse do “Bug do Milênio”. Para eu aquilo era pegadinha do Faustão, pois com poucas(uma)linhas em C.O.B.O.L, qualquer iniciante prático em Cobol se viraria. Eu creio que todas as plataformas para programação são ótimas, porém C.O.B.O.L é a base de todas. Sou dinossauro, admito, porém quando você acostuma a usar o cérebro para arquitetar uma solução em programação, não tem mais jeito; você não vai querer usar a coisa pronta. Não existe sensação melhor do que em um teste de mesa, linha por linha, você rodar seu programa, mandar pro digitador e depois ouvir os comentários “esse cara é foda”.

    Responda

  16. Java ? Estou estudando e testando a implantação do Spring Batch, e na JSR 352 Batch Applications for the Java Platform. Será esse o futuro para aplicações Batch ? Alguem já utilizou o Spring Batch ?

    Na Empresa aonde trabalho estamos com essa enorme dificuldade, migrar uma linguagem RPG, nativa em servidores IBM System i (antigos AS/400) para Java ou Cobol, após alguns teste podemos verificar a facilidade e performance que este framework proporciona, que continuem essa espeficicação…..
    abc

    Responda

    Kico (Henrique Lobo Weissmann) Reply:

    Oi João,

    eu dei uma estudada no Spring Batch recentemente e achei uma puta ferramenta viu. Infelizmente eu não pude por em prática ainda, mas pretendo fazê-lo em breve, o que gerará um post aqui neste blog com certeza.

    Responda

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>