[Pesquisar este blog]

quarta-feira, 9 de novembro de 2016

Java 9::mais um atraso no lançamento

O lançamento do Java 9 foi adiado uma outra vez. Com essa notícia, um tanto frustante para a enorme comunidade Java, vem um questionamento bastante natural: por quê o prolongamento da fase final de desenvolvimento da nova versão?

Segundo o arquiteto-chefe da plataforma Java na Oracle, Mark Reinhold, o time de desenvolvimento não está onde deveria em relação o cronograma, pois o Jigsaw precisa mais tempo. Além disso também observou que o número de problemas relatados no JDK 9 é maior que a quantidade existente no JDK 8 quando se encontrava em fase idêntica do desenvolvimento. A partir destas declarações, o atraso se tornou oficial:em 18/10 a data de entrega da versão 9 passou de 27/03/2017 para 27/07/2017. Quatro longos meses de atraso, que se somam aos outros seis meses da data original que era 22/09/2016.

A notícia gerou muitos comentários na comunidade e na imprensa especializada (InfoWorld, 404TS, The Register, Jaxenter, eWeek, ADTmag, Takipi). Nada muito diferente do que temos aqui, o que é pouco animador. 

Jigsaw se refere ao novo mecanismo de modularização da API, característica que é carro chefe da versão. Seu objetivo é possibilitar a divisão do runtime em componentes interoperáveis que possibilitem a criação de versões otimizadas para atender necessidade específicas. Atualmente a estrutura do Java Runtime Enviroment é praticamente monolítica, sendo que o arquivo rt.jar contém quase 20.000 classes, muitas delas usadas em poucos programas e poucas usadas por quase todos. Assim, seu tamanho torna-se um peso para a JVM e, com isso, compromete o desempenho das aplicações Java. Ao particionar a API, cada programa Java poderá carregar apenos os módulos necessários, o que trará um melhor desempenho. Além disso, aplicações poderão ser construídas de maneira idêntica, ou seja, com estrutura modular, estendendo tal flexibilidade aos programas construídos com a plataforma.

Apesar da importância do projeto Jigsaw, este atraso é bastante desanimador e, de certa maneira, lança uma incerteza quanto ao cumprimento das novas datas, pois que já errou mais de uma vez, pode continuar errando. Por outro lado, a busca de qualidade ao invés de velocidade, com mero cumprimento de prazo, é algo visto como positivo pelos desenvolvedores em geral. A esperança, então, é que esta data seja cumprida.

Mesmo com tudo isso, a plataforma Java continua liderando a preferência dos programadores. No TIOBE Index de novembro/2016 o Java figura como #1 (18.755%), C como #2 (9,203%), C++ é #3 (5.415%) e C# o #4 (3.659%). Observe que o percentual exibido pelo Java é maior que a soma de C, C++ e C#. Isso diz muita coisa!

O Novo Plano


Com o adiamento da data final de lançamento, todo o cronograma da versão 9 foi alterado, na verdade prolongado, conforme a página do projeto. No momento temos:

  • 2016/12/22 Feature Extension Complete
  • 2017/01/05 Rampdown Start
  • 2017/02/09 All Tests Run
  • 2017/02/16 Zero Bug Bounce
  • 2017/03/16 Rampdown Phase 2
  • 2017/07/06 Final Release Candidate
  • 2017/07/27 General Availability
Assim, apenas em dezembro deste ano teremos a confirmação de todas as características inclusas na versão 9, ponto em que se congela a lista de características da plataforma, sem possibilidade de novas inclusões (até esta data existe até um risco do Jigsaw ser removido da versão 9 e empurrado para a 10, o que já ocorreu no passado!). A fase de testes que segue pretende produzir um candidato a primeira versão oficial do Java 9 no início de julho/2017. Com tudo isso, contando com a inspiração do time de desenvolvimento, no final de julho/2017 deverá ocorrer o General Avaliability, ou seja, quando o JDK 9 é liberado para produção. Maktub!

Para os Curiosos, Ansiosos & Afoitos

As versões preliminares do Java 9 podem ser experimentadas. Basta efetuar o download de uma versão early access no link indicado para JDK 9 Early Access Releases na seção Para Saber Mais. É só conferir!

Para saber mais

Nenhum comentário: