Java language end of life (aka. Java as a platform)?

Deve fazer mais um menos uns 5 anos que a maioria de nós ouvimos falar em Ruby on Rails. De lá pra cá, a adoção da linguagem Ruby e do framework Rails subiu de uma forma surpreendente, ajudando a quebrar um pouco a polarização Java<->.Net que tínhamos antes. É claro que Ruby ainda não atingiu a popularidade Java ou de .Net, principalmente aqui no Brasil, mas mesmo assim ajudou a comunidade como um todo a repensar vários aspectos do desenvolvimento de software, principalmente de aplicações web.

Uma das coisas que a revolução do Ruby on Rails fortaleceu é o uso de outras linguagens na Java Virtual Machine. É claro que antes de surgir o Rails já existiam várias iniciativas para rodar outras linguagens dentro da JVM, mas depois de uns anos pra cá esse assunto ficou cada vez mais importante, pois existe muito interesse em rodar aplicações desenvolvidas usando ferramentas produtivas como Ruby on Rails numa plataforma robusta como Java. Hoje tempos diversas engines que permitem rodar muito bem várias linguagens na JVM, como JRuby, Jython, Clojure, Rhino, Groovy, entre outras… Com essa quantidade de linguagens rodando na JVM, já faz alguns anos que se tem falado em Java como plataforma e não como linguagem.

Eu gosto muito dessa idéia, acho que as vantagens dessa abordagem já foram amplamente discutidas, mas resumindo:

  • Java possui uma das mais avançadas máquinas virtuais do mercado. O just-in-time compiler e o garbage collector da JVM, mesmo não sendo perfeitos, são frutos de anos de pesquisa e desenvolvimento, seria muito difícil implementar uma VM igual do zero para outras linguagens.
  • Existe um enorme legado de aplicações desenvolvidas em Java, utilizando Java como plataforma, novas aplicações em outras linguagens podem aproveitar muito do código já existente.
  • Java também possui excelentes servidores web e application servers bem estabelecidos no mercado

Infelizmente, já se passarem alguns anos que esse tipo de abordagem vem sendo discutida, mas não temos tantas empresas adotando Java como linguagem e não como plataforma. Quase todo mundo que desenvolve na plataforma Java usa a própria linguagem Java. Temos sim muitas empresas desenvolvendo novos projetos em Ruby on Rails, mas na maioria dos casos não estão rodando eles em Java. Pelo menos é o que eu tenho visto na nossa comunidade local.

Um dos motivos para isso é a dobradinha Passenger + Nginx (ou mesmo Apache) tem tido muito sucesso para rodar aplicações Rails. As pessoas não precisam recorrer ao JRuby para rodar aplicações Rails num ambiente com uma performance aceitável. O Passenger tem dado conta do recado.

Eu gostaria muito de ver mais empresas adotando Ruby on Rails, acho que poder reaproveitar código já existe e poder rodar numa infra-estrutura (VM + Application Server) já bem estabelecida são dois fatores que podem facilitar a adoção de Ruby on Rails em empresas que utilizam Java, mas não é algo fácil de ser feito. Ruby tem uma sintaxe diferente, um estilo de programação diferente. Leva algum tempo pegar uma equipe que trabalha muito bem com Java e deixar ela produtiva trabalhando com Ruby on Rails.

Recentemente, a ThoughtWorks recomendou que as empresas comecem a avaliar o “Java language end of life”, ou seja, usar outras linguagens na plataforma Java. Quando eu li essa recomendação achei meio precipitado, mas no fim é uma opção tecnicamente viável e pode trazer muitos ganhos de produtividade.

Eu acho que vai demorar muito até a grande maioria das empresas adotarem outras linguagens mais produtivas que Java, mas se você trabalha com Java tem a liberdade de escolher a tecnologia que você vai usar para desenvolver seus aplicativos, já passou da hora de considerar usar outras linguagens que rodam na JVM.

2 comments so far

  1. Fernando Boaglio on

    Como recentemente a Oracle comprou a Sun, acho difícil alguma empresa pensar em “Java language end of life” , imagine o Marketing que a Oracle vai fazer agora…

  2. […] apostar em um novo modelo de desenvolvimento ágil, até muitos  evangelistas estão ciente da decadência da linguagem que não oferece recursos em frente de seus concorrentes e não a extinção pois é o […]


Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: