Java é o novo COBOL?


 

Ontem tive um interessante debate com o Pedro, um grade amigo meu (troquei o link para o blog correto), sobre Java é como a linguagem e plataforma têm evoluído. Recentemente ele participou de uma conferência nos EUA, onde mora atualmente, e comentou que os palestrantes mostravam uma percepção de que o Java é o novo COBOL, acho que isso fica ainda mais forte com a publicação da InfoWorld inclusive é muito interessante.

Conversamos bastante sobre isso, é existem alguns pontos a se considerar, temos uma grande quantidade de código Java escrito para sistemas corporativos, realmente a representatividade do Java atualmente lembra a do COBOL. Eu ainda não sei se concordo totalmente, mas especula-se que o Java como linguagem esteja em seu momento de declínio, por ser mais difícil que as outras linguagens. Não sei se acho tão complicado assim, na verdade existe um grande fantasma que diz que Java é muito difícil (embora eu concorde que é necessário estudar bastante para dominar.)

Por outro lado a plataforma Java apresenta grande sucesso, tanto na parte de componentização atual quanto na questão do uso da máquina virtual Java mesmo para outras linguagens, atualmente existem implementações de outras linguagens para rodar sobre a máquina virtual, e acredito que principalmente porque é muito chato ter que recompilar a sua linguagem para cada uma das plataformas, se você pensar que já tem uma empresa (Oracle/Sun) que cria uma máquina virtual para diversas plataformas físicas e isso garante que o ambiente da sua linguagem vai rodar em outras plataformas, porque ter esse trabalho todo?

Uma coisa importante para se considerar sempre é o índice TIOBE que mantém um ranking das linguagens de programação e Java e C continuam lá no topo, outras linguagens têm subido e descido como sempre. Uma que ganhou muito espaço foi Objective-C, porque? Porque é a forma de criar aplicações para iPhone.

Acredito que outras tecnologias apresentam certas facilidades para desenvolver sistemas de forma rápida, tais como Ruby on Rails e até mesmo PHP, mas quando falamos de implementar a parte que dará suporte às regras de negócio, a parte de lógica ainda acredito em usar o Java, principalmente pela grande quantidade de facilidades que temos disponíveis para ajudar no desenvolvimento.

Vamos continuar acompanhando para saber o rumo dessas mudanças no mundo de desenvolvimento.

One comments

  1. Oi Paulo,

    Legal você comentar sobre o nosso bate-papo. Só queria notar que no blog MPBurglin (http://mpburglin.blogspot.com) eu e a patroa falamos mais sobre viagens nos EUA, enquanto que no ThoughtsForBeans (http://thoughtsforbeans.blogspot.com/) eu comento mais sobre tecnologia, desenvolvimento de software e afins.

    Agora, comentando sobre os seus comentários:

    “…especula-se que o Java como linguagem esteja em seu momento de declínio” -> ao invés de declínio eu acredito ser mais “estagnação”. Claro, estão incluindo novas funcionalidades sintáticas (closures, strings em blocos condicionais switch etc), mas essas modernizações vão gerar mais problemas do que ajudar. Os palestrantes do NFJS (http://www.nofluffjuststuff.com/) parecem concordar que seria interessante que a linguagem Java fosse mantida como mínimo denominador comum entre outras linguagens mais dinâmicas, e priorizar compatibilidade com diferentes versões da JVM.

    “declínio, por ser mais difícil que as outras linguagens” -> eu não concordo que Java seja mais difícil que outras linguagens. Você já tentou programar algo em Clojure?? Entretanto, comparativamente a linguagem Java é, muitas vezes, desnecessáriamente mais verboso, o que tende a afetar a produtividade no desenvolvimento e manutenção de sistemas de forma significativa.

    A comparação entre Java e COBOL faz sentido já que hoje em dia Java não é mais “bleeding edge” – tecnologia de ponta – como era anos atrás. Ao contrário, acabou virando uma commodity. Temos hoje uma legiao de programadores Java no mundo todo, o que torna mais difícil para bons programadores se destacar. No início, muitas dessas “mentes brilhantes” – pessoas influentes na direção para onde a tecnologia que usamos caminha – focaram muito em frameworks, plugins e outros mecanismos (Spring, Struts, Hibernate, JSF e tantos mais) para se destacar, aumentar produtividade ou apenas vender mais livros. Isso funcionou bem, mas após algum tempo até esses mecanismos foram comoditizados, e agora muitas dessas pessoas estão desenvolvendo novas linguagens (Clojure, Ruby, Groovy etc) e plataformas de desenvolvimento (Ruby on Rails, Grails etc). É, não dá muito certo ter 999 livros de Struts na Amazon…

    Embora esse fenômeno segmente e dilua de certa forma as “mentes brilhantes”, eu vejo isso com bons olhos porque é difícil – senão impossível – criar uma linguagem genérica que sejá ótima para tudo. Logo, faz muito sentido arquiteturas que usem várias linguagens diferentes em partes diferentes do sistema. Por exemplo, podemos criar a infraestrutura básica em Java (integração, persistência, regras de negócios etc), apenas a camada de apresentação em Ruby / RoR e processos internos pontuais que requeiram alta paralelização em Erlang ou Clojure. O que falta, muitas vezes na minha humilde opinião, são arquitetos e times de desenvolvimento dispostos a aprender coisas novas ao invés de usar sempre o velho martelo Java para resolver qualquer problema que apareça.

    Um grande abraço e até a próxima,
    Pedro Burglin

Leave a Reply