Li no blog do Chet Haase que ele e o Thorsten Laux apresentaram no Java One 2007 novas features a serem incluídas num update ao java 6, no que diz respeito ao java no desktop.
O Consumer JRE vem tent
ar suprimir diversas falhas do java ao nível do desktop, como seja o tamanho de download da distribuição, detecção da JRE instalada e outros temas de performance. No post do Chet, resume 5 pontos:
- Quickstarter
- Java Kernel
- Deployment Toolkit
- Melhorias no installer
- Performance gráfica no Windows
- Novo Look & Feel: Nimbus
O java, quando arranca pela primeira vez, precisa de ler uns quantos ficheiros o que demora tempo. Esta técnica tenta evitar esse primeiro carregamento lento, colocando quando se faz login no windows os ficheiros na cache do disco, sendo assim muito mais rápido de arrancar.
Esta ideia já há muito tempo que anda aí pela net e finalmente é verdade. Lembro-me claramente de ouvir uma discussão sobre isto num podcast do Java Posse de há cerca de 1 ano atrás. O objectivo é que quando um utilizador não tenha a versão necessária de jre para correr determinado programa ou applet, não tenha de fazer download da distribuição completa, mas apenas de um kernel nuclear e das bibliotecas das quais depende o programa em questão.
O objectivo é termos um kernel que, tal como por exemplo no linux, apenas contém as funcionalidades e bibliotecas base do sistema, que no caso do java, terá as classes da vm, garbage collector, I/O, etc. Depois são determinadas as dependências de classes da aplicação e é feito o download dessas classes (e das que delas dependem). Por fim, podem à mesma ocorrer erros de ClassNotFoundException, por exemplo se utilizarmos o Reflection API. Nesses casos, sempre que ocorrer uma ClassNotFoundException ir-se-á tentar fazer download da classe em questão e suas dependências.
O interessante é que, enquanto estas verificações de dependências e downloads ocorrem, e enquanto o utilizador utiliza a aplicação, em background é feito o download do resto
da jre. Consegue-se assim poupar tempo no arranque e assincronamente conseguir a distribuição completa. Muito interessante e há bastante tempo que esperava por isto: é a grande melhoria para mim.
Permite a detecção de versões do java a partir do browser. Antes havia um control ActiveX que fazia isto, mas era apenas possível utiliza-lo no Internet Explorer. Agora lançam 2 plugins (para IE e Firefox) e a possibilidade de fazer a verificação por javascript.
Não consegui perceber muito bem como funciona a parte do javascript e não me deixou muito convencido. Não acredito que com algumas linhas de javascript seja possivel verificar a versão de java, sem o plugin ou algo do género. Tal como não acredito que isso funcione em todos os browsers.
Foram efectuadas umas quantas melhorias de usabilidade no installer.
Melhorias de performance utilizando Direct3D.
Mais um look & feel para java. Feio como os outros todos…
Em suma, tem umas quantas coisas interessantes. A parte positiva é que vai ser distribuído como um update ao java 6, logo não vai ser preciso esperar pelo Java 7 nem estar a fazer downloads, vem direitinho para a nossa máquina daqui a uns tempos.
Quanto à utilidade das novas features, destaco as duas primeiras, sendo que o valor do quickstarter depende do espaço que venha a ocupar. Se ocupar muito, penso que não se justifica. Além disso, espero que tudo isto possa ser configurável a nível da máquina.