Novas linguagens de programação e software legado
Fabio Cevasco lista possíveis 10 linguagens de programação que poderiam ser aprendidas no ano de 2009. Há quem discorde da prática de aprender uma nova linguagem de programação a cada ano.
Enquanto ainda há gente rodando software em Cobol de 20 anos ou programas escritos em assembly – porque não havia outra linguagem disponível na época – há quem rode “the best and the brightest situational-Web 2.0-agile-social-networking-enabledsemantically-dense-cloud-basedsystems-of-systems-script-based software” (Booch) e, em poucas semanas, considere-o velho porque surgiu a novíssima e a melhor tecnologia dos últimos tempos da última semana (propaganda clichê).
Independentemente do mérito de aprender ou não uma nova linguagem de programação, seja por experimentação ou por demandas e necessidades mais sofisticadas, por exemplo, concorrência, faz-se necessário entender que sistemas escritos em novas linguagens possuem quase nenhuma representatividade no mercado de trabalho. Possivelmente serão Java, 14 anos de estrada, que segundo os apocalípticos já está tornando-se o novo COBOL, C, com quase 40 anos continua sendo importante no cenário na indústria, e C++, 30 anos em 2009, que pagarão suas contas. Estas são, respectivamente, as três primeiras colocadas no índice TIOBE e em muitos outros rankings. O ranking de Janeiro de 2009 esta abaixo:
TIOBE Programming Community Index for January 2009
Muitos novos profissionais frustram-se ao depararem-se com a realidade de dar manutenção em sistemas antigos, com linguagens de programação “defasadas”. Sommerville estima que cerca de 80% do tempo de vida do software seja dedicado à manutenção e evolução. Por isto que linguagens de programação “ultrapassadas” como Visual Basic, Delphi e Perl ainda configuram na lista entre as 10 linguagens mais populares em janeiro de 2009, logo abaixo, entre as top 20, aparecem ABAP e COBOL. Não é nenhuma surpresa elas dividem espaço com linguagens mais novas.
TIOBE Long term trends
O certo é que software legado é realidade nas empresas, encará-lo é questão de tempo. Ele existe porque tem valor para seus usuários e, principalmente, porque não é trivial substituí-lo. Cedo ou tarde as empresas deparam-se com a pergunta: o que fazer com meu software legado? Para Booch, além da natural manutenção, há outros possíveis fins para software legado:
- Abandoná-lo, jogar na lata do lixo;
- Abrir o código fonte para a comunidade;
- Ignorá-lo, isto é, apenas deixá-lo rodando como está hoje, por exemplo, como os bancos fazem há décadas com muitos de seus sistemas;
- Mantê-lo rodando em sua plataforma original, pois software legado não é multi-plataforma, tentando assim encontrar e comprar o hardware antigo onde ele roda quando a disponibilidade da plataforma é o maior desafio;
- Reescrevê-lo em novo ambiente, plataforma e linguagem;
- Inspirar-se e criar novo software baseado no conhecimento embutido no código;
- Encapsulá-lo em serviços, SOA, para ser usado como componentes de um novo software;
- Mantê-lo e evoluí-lo no seu ambiente atual;
- Preservá-lo, doando-o a um museu.
Importante frisar: a linguagem é apenas uma pequena parte do ecossistema técnico do desenvolvimento de um software. O melhor mesmo é aprender a programar em vários paradigmas e, de preferência, em qualquer linguagem para encarar o duro mercado de trabalho.
Referências:
- Booch, G. 2008. Nine Things You Can Do with Old Software. IEEE Software September/October 2008.
- Sommerville, I. 2004 Software Engineering (7th Edition). Pearson Addison Wesley.
