Gostaria de falar com o senhor sobre dutos. Espere um pouco. Risque isso. Eu quis dizer COBOL. A Common Business Oriented Language está comemorando seu quinquagésimo aniversário como a linguagem que está em toda parte e em lugar nenhum ao mesmo tempo:
Como resultado, hoje o COBOL está em toda parte, mas é praticamente desconhecido entre os milhões de pessoas que interagem com ele diariamente. Seu alcance é tão abrangente que é quase impensável que uma pessoa comum passe um dia sem ele. Seja usando um caixa eletrônico, parando em semáforos ou comprando um produto on-line, a grande maioria de nós usará COBOL de uma forma ou de outra como parte de nossa existência diária.
As estatísticas que cercam o COBOL atestam sua enorme influência no mundo dos negócios. Existem mais de 220 bilhões de linhas de COBOL, um número que equivale a cerca de 80% do código usado ativamente no mundo. Estima-se que haja mais de um milhão de programadores de COBOL no mundo atualmente. Talvez o mais impressionante seja o fato de que são realizadas 200 vezes mais transações COBOL por dia do que buscas no Google, um número que coloca a influência da Web 2.0 em uma perspectiva muito clara.
Todos os anos, os sistemas COBOL são responsáveis pelo transporte de até 72.000 contêineres, pelo atendimento de 60 milhões de pacientes, pelo processamento de 80% das transações em pontos de venda e pela conexão de 500 milhões de usuários de telefones celulares. O COBOL gerencia nossos horários de trens, sistemas de controle de tráfego aéreo, reservas de férias e controles de estoque de supermercados. E a lista poderia continuar.
Tenho dificuldade em conciliar esse dado com o fato de que nunca, em toda a minha carreira de programação dita “profissional”, encontrei ninguém que estivesse escrevendo ativamente código COBOL. Isso provavelmente diz mais sobre meu isolamento como programador do que qualquer outra coisa, mas mesmo assim. Acho toda essa situação um pouco desconcertante. Se esses 220 bilhões de linhas de código COBOL estão realmente em algum lugar, onde estão todos os programadores COBOL? Será que eles escreveram sistemas de software tão perfeitos, tão livres de bugs, que todos esses bilhões de linhas de código estão de alguma forma se mantendo sem a necessidade de legiões e exércitos de programadores COBOL, décadas depois?
Se assim for, é um feito impressionante.
E se o COBOL é tão difundido, por que está em primeiro lugar nessa lista de conhecimentos de informática mortos (ou em extinção) compilado em 2007?
O Y2k foi como uma segunda corrida do ouro para os programadores Cobol que estavam vendo a necessidade cada vez menor de suas habilidades. Mas seis anos e meio depois, não há nenhum salvador à vista para essa linguagem em declínio. Ao mesmo tempo, embora haja pouca cobertura curricular nas universidades que ensinam ciência da computação, “quando o senhor conversa com os profissionais, eles dizem que há aplicativos em milhares de organizações que precisam ser mantidos”, diz Heikki Topi, presidente de serviços de informações de computação do Bentley College em Waltham, Massachusetts, e membro do conselho de educação da Association for Computing Machinery.
Quando o senhor se aprofunda e ler sobre alguns desses sistemas COBOL do mundo realo senhor pode ter uma ideia do tipo de dificuldades que eles enfrentam.
Read diz que o software de gerenciamento de apólices e processamento de sinistros da Columbia Insurance tem 20 anos e 1 milhão de linhas de código COBOL, com cerca de 3.000 modificações feitas ao longo dos anos. “Apesar de todos terem declarado que o Cobol estava morto há algumas décadas, ele ainda existe”, diz ele. “Continuamos a aprimorar o sistema básico. Ele ainda é de tela verde, se é que o senhor pode acreditar nisso.”
Read diz que fazer com que os funcionários mais jovens assumam tarefas em Cobol é um “verdadeiro desafio, porque não é aí que a tecnologia está hoje”. Ele simplesmente diz a eles que precisam fazer algum trabalho em Cobol, prometendo uma mudança para outras coisas na primeira oportunidade.
O senhor se lembra de como o tempo de execução de linguagem comum do .NET prometia um rico suporte a uma infinidade de linguagens diferentes, mas nada disso importava porque o todo mundo praticamente só usa C# mesmo? Bem, esse CLR não foi desperdiçado, porque ele é possível escrever código em COBOL.NET.
private void button1_Click(object sender, System.EventArgs e) { button1.Text = "Call COBOL"; }
Isso foi em C#, é claro. Aqui está a versão COBOL.NET do mesmo:
METHOD-ID. button1_Click PRIVATE. DATA DIVISION. LINKAGE SECTION. 01 sender OBJECT REFERENCE CLASS-OBJECT. 01 e OBJECT REFERENCE CLASS-EVENTARGS. PROCEDURE DIVISION USING BY VALUE sender e. SET PROP-TEXT OF button1 TO "Call COBOL". END METHOD button1_Click.
Há algo que eu possa escrever aqui que o código acima não tenha deixado bem claro?
COBOL: tão vibrantemente vivo, mas ainda assim… muito, muito morto.