Neste artigo abordamos a questão sobre o Java ter se tornado uma tecnologia “legada”, a ser evitada em novos projetos, ou se o Java permanece como uma das principais plataformas para desenvolvimento de software, especialmente para dispositivos móveis e na nuvem.
Em que situação o tema útil:
Estudantes e profissionais iniciando no meio de desenvolvimento de software, ou necessitando se reciclar para o moderno desenvolvimento web, e tomadores de decisões, como líderes de projetos e gerentes de TI, encontrarão aqui argumentos e fatos para justificar a opção pela plataforma Java e refutar a maioria das razões em contrário.
Resumo DevMan:
Este artigo avalia afirmações frequentes na blogosfera sobre o declínio da plataforma Java no mercado e mostra a sua importância concreta para o futuro do meio de TI na computação móvel e em nuvem. Em seguida avalia afirmações sobre a complexidade e “engessamento” da plataforma Java, mostrando que ela ainda representa o estado da arte em desenvolvimento de software. Por fim, apresenta estatísticas de ofertas de emprego no Brasil e nos EUA, mostrando que Java continuará sendo pelos próximos anos a plataforma mais interessante para o profissional de TI se especializar.
Muitos vêm sugerindo ultimamente que Java é uma plataforma “velha”, que está com dificuldades de acompanhar as inovações de ambientes como Ruby, Scala e a Nuvem. Java já foi chamada de “o novo COBOL”, sugerindo que ela não vai desaparecer tão cedo dos CPDs das grandes empresas, mas que seu tempo já passou, e novos projetos deveriam ser feitos em outra linguagem. Mas isto será mesmo verdade?
Esta questão tem dois lados: o lado da atualização tecnológica (será que as inovações ainda estão surgindo dentro do Java, ou as que surgem em outras linguagens estão sendo rapidamente incorporadas?) e o mais mundano, da adoção pelas empresas e empregabilidade do profissional. A conclusão é que, em ambos os lados, a análise dos fatos mostra que Java ainda tem tudo para se manter como a principal plataforma de TI por muitos anos à frente.
Java em Smartphones e Tablets
Hoje a empolgação no mundo do desenvolvimento de software está na computação móvel e de nuvem. No ritmo acelerado de evolução da Web, tem destaque a programação dentro do próprio navegador (aplicações Ajax escritas em JavaScript); a programação para os ambientes nativos dos SOs para Smartphones e Tablets, em especial iOS e Android; e os serviços REST oferecidos por Amazon, Facebook, Google e outros. Em comparação com este universo o Java EE fica parecendo tão “Web 1.0”, com seus frameworks MVC e padrões WS-* para serviços SOAP. Sem falar na pobreza de aplicações Java ME, que por sinal nem são suportadas pelos Smartphones atuais.
É verdade que o ambiente preferencial de desenvolvimento para o Android é Java, mas é um Java modificado, rodando na Dalvik VM (que não é uma Java VM) e baseado em um modelo de programação que não tem nada a ver com as APIs Swing, MIDP, nem com o mais recente Java FX. Tanto que a Oracle está na justiça contra o Google, por conta do aproveitamento de partes do Java no Android.
Mas esta briga entre Oracle e Google não é o fim do mundo para o Java. O pior cenário que pode acontecer como consequência desta briga é o Google e fabricantes de dispositivos Android, como a Samsung, pagarem royalties e indenizações para a Oracle. Os processos da Oracle, Microsoft e Apple contra fabricantes de celulares Android existem justamente porque elas não estão conseguindo vencê-los com melhores produtos, e querem uma fatia do bolo. Sabiam que a Microsoft hoje recebe mais dinheiro com royalties de fabricantes que consideraram mais barato fazer acordo do que levar a questão a julgamento (por exemplo, a HTC) do que pelas licenças dos fabricantes de celulares Windows Phone?
Por outro lado, empresas como Google, Barnes & Noble e Samsung têm porte financeiro suficiente para comprar a briga na justiça. E não se pode negar o crescimento da plataforma Android no mercado, que já domina tanto como um todo quanto se considerarmos fabricantes individuais (em Novembro a Samsung ultrapassou a Apple em Smartphones), e nem o fato de que para desenvolver em Android é necessário conhecer Java e usar ferramentas Java como o JDK e o Eclipse.
Smartphones e Tablets necessitam de aplicações desenvolvidas especialmente para eles, otimizadas para as possibilidades e limitações destes equipamentos. Não é realista esperar que aplicações desktop ou web tradicionais sejam adaptadas com pouco esforço para dispositivos móveis. Assim como não aconteceu na transição dos terminais burros para os ambientes gráficos, nem destes para a web. A Sun, Oracle e o JCP foram ineficientes em trazer uma solução Java para plataformas móveis modernas, mas o Google trouxe no Android uma solução open source, o que no final das contas é tão bom para os desenvolvedores Java quanto um padrão oficial.
...