Este é um post disponível para assinantes MVPEste post também está disponível para assinantes da Java Magazine DIGITAL ou para quem possui Créditos DevMedia. Clique aqui para saber mais!
Java SE 7: Plataforma - Java Magazine 83
Continuamos a cobertura da plataforma Java SE 7, atacando dessa vez as novas APIs e outras melhorias da JVM: aperfeiçoamentos do HotSpot, Java2D, suporte a 64 bits, entre outros.
Java Magazine 83
[Artigo já está disponível no Leitor Digital DevMedia®. Clique aqui para acessá-lo]
> Clique aqui para ler todos os artigos da Java Magazine 83
[Artigo já está disponível no Leitor Digital DevMedia®. Clique aqui para acessá-lo]
> Clique aqui para ler todos os artigos da Java Magazine 83
Java SE 7: Plataforma
Conheça as novidades da linguagem Java, geração 7
Uma visão didática, e ao mesmo tempo profunda, das novas sintaxes da linguagem Java 7
Na Edição anterior iniciamos a cobertura do próximo release do Java, começando pelas novidades da linguagem, que já renderam bastante assunto e ainda renderão mais... mas o Java SE 7 não se resume à nova linguagem. O novo release da plataforma também inclui, como de costume, um lote de novidades e melhorias de API ou de infraestrutura. Neste artigo faremos um apanhado destas “outras” novidades.
Finalmente, temos Java SE 7
Este é o primeiro artigo que trata da plataforma Java SE 7 como um todo, e é o primeiro que pode nomear esta plataforma como algo certo e concreto. Até há pouco tempo não havia confirmação oficial sobre tal plataforma, só havia o projeto JDK 7. Mas o JDK é apenas uma implementação, no caso a da Oracle (e por consequência das contribuições ao OpenJDK, da comunidade open source). A plataforma Java SE é definida pelo JCP, mas a JSR necessária ainda não havia sido anunciada. Alguns críticos mais ácidos da Sun (e agora da Oracle), como o pessoal do Apache (devido à velha briga em torno do Harmony), chegaram a sugerir que poderíamos não ter nenhuma JSR e nenhuma plataforma oficial, ou seja que a Oracle iria abandonar a padronização do JCP e simplesmente finalizar o JDK 7 e impô-lo ao mercado sem padrões.
Bem, a dúvida finalmente se dissipou com o anúncio de uma palestra sobre “Java SE 7” de Mark Reinhold (líder do projeto JDK 7), na Devoxx 2010, que acontecerá em Novembro. Ainda não há JSR, mas esta provavelmente será lançada antes da JavaOne 2010, que este ano acontece nos EUA em 19-23 de setembro... e pela primeira vez, no Brasil em 7-9 de dezembro.
O que é que o Java SE 7 tem?
Já cobrimos as novidades da linguagem, o item mais importante desta atualização da plataforma. Este segundo artigo dá uma visão geral do “resto”. Mas não espere uma batelada de novas APIs. O último release da plataforma a acrescentar um volume significativo de APIs foi o J2SE 5.0, e mesmo neste, vários acréscimos foram mera inclusão de APIs que já existiam (como JMX e JAXP) ou alterações incrementais de APIs já da plataforma SE (como JDBC RowSets). No Java SE 6, o número de novas APIs já foi menor, mesmo contando tais casos. E no Java SE 7, é ainda menor. Isso é natural, pois após um período de crescimento explosivo de APIs entre as versões 1.2 e 1.4, a plataforma Java estabilizou, e é bom que seja assim. Muita gente já acha o JRE muito grande, inchado. Nem todas as novas APIs devem ser empilhadas no JRE, só as realmente fundamentais.
Por outro lado, a inovação em outros aspectos não para nunca, de fato até acelera na medida em que menos esforço é investido em novas APIs. Temos um fluxo contínuo de aperfeiçoamentos da própria VM, prometendo avanços na compilação JIT de código, gerenciamento de memória / GC, concorrência, etc. Também há um esforço contínuo na melhora da implementação de APIs, por exemplo as de GUI (AWT, Java2D e Swing), sempre explorando melhor os recursos do hardware gráfico e de toolkits nativos de GUI. Além das novidades de sintaxe, é nessas áreas que o Java SE 7 apresenta seus maiores destaques. Assim, é basicamente disso que vamos falar neste artigo.
Java SE 7 versus JDK 7
Uma consequência deste foco do Java SE 7 – em fatores de implementação, não necessariamente novas APIs – é que muitas dessas novidades são, de fato, novidades do Oracle JDK 7, não do Java SE 7. Por exemplo: a nova pipeline da Java2D para o XRender, o maior destaque desta versão para GUIs AWT/Swing, é um detalhe de implementação da Java2D. Você não encontrará nenhuma JSR falando disso. Os padrões e APIs públicas não dizem nada sobre a implementação da Java2D: se deve ser feita com a GDI, X11, OpenGL, DirectX, CoreGraphics ou qualquer outra tecnologia. Até por que a maioria dessas tecnologias não é portável, mas sim amarrada a cada sistema operacional .
No entanto, o Oracle JDK é um padrão de fato. Seu código-fonte é licenciado para outros distribuidores. Alguns JDKs “alternativos”, como o da HP para HP-UX, são meros portes para outra plataforma, 99% iguais à versão da Sun / Oracle. O Apple JDK é um pouco customizado, especialmente nas tecnologias de GUI. Já o JRockit e o IBM JDK possuem VMs independentes, mas reusam o grosso das APIs. Finalmente, no terreno do Java Livre, o OpenJDK também é basicamente uma cópia do código da Oracle, exceto por customizações pontuais, em geral focadas na substituição de alguns componentes não-livres do Oracle JDK.
Isso significa que, embora este artigo cubra vários itens que são “detalhe de implementação”, na prática estas novidades, e o conhecimento delas, são válidos para diversas outras distribuições da plataforma Java SE 7. Por exemplo, o XRender acabará aparecendo na maioria dos JDKs para Linux e Unix baseados no código da Oracle. Já o novo coletor G1 deve aparecer em alguns (como OpenJDK, Apple JDK e HP-UX JDK), mas não necessariamente em todos (por exemplo o IBM JDK tem uma VM totalmente independente, e não irá incorporar o G1).
"
ATENÇÃO! A exibição deste artigo foi interrompida.
Este é um post disponível para assinantes MVP
Conheça as novidades da linguagem Java, geração 7
Uma visão didática, e ao mesmo tempo profunda, das novas sintaxes da linguagem Java 7
Na Edição anterior iniciamos a cobertura do próximo release do Java, começando pelas novidades da linguagem, que já renderam bastante assunto e ainda renderão mais... mas o Java SE 7 não se resume à nova linguagem. O novo release da plataforma também inclui, como de costume, um lote de novidades e melhorias de API ou de infraestrutura. Neste artigo faremos um apanhado destas “outras” novidades.
Finalmente, temos Java SE 7
Este é o primeiro artigo que trata da plataforma Java SE 7 como um todo, e é o primeiro que pode nomear esta plataforma como algo certo e concreto. Até há pouco tempo não havia confirmação oficial sobre tal plataforma, só havia o projeto JDK 7. Mas o JDK é apenas uma implementação, no caso a da Oracle (e por consequência das contribuições ao OpenJDK, da comunidade open source). A plataforma Java SE é definida pelo JCP, mas a JSR necessária ainda não havia sido anunciada. Alguns críticos mais ácidos da Sun (e agora da Oracle), como o pessoal do Apache (devido à velha briga em torno do Harmony), chegaram a sugerir que poderíamos não ter nenhuma JSR e nenhuma plataforma oficial, ou seja que a Oracle iria abandonar a padronização do JCP e simplesmente finalizar o JDK 7 e impô-lo ao mercado sem padrões.
Bem, a dúvida finalmente se dissipou com o anúncio de uma palestra sobre “Java SE 7” de Mark Reinhold (líder do projeto JDK 7), na Devoxx 2010, que acontecerá em Novembro. Ainda não há JSR, mas esta provavelmente será lançada antes da JavaOne 2010, que este ano acontece nos EUA em 19-23 de setembro... e pela primeira vez, no Brasil em 7-9 de dezembro.
O que é que o Java SE 7 tem?
Já cobrimos as novidades da linguagem, o item mais importante desta atualização da plataforma. Este segundo artigo dá uma visão geral do “resto”. Mas não espere uma batelada de novas APIs. O último release da plataforma a acrescentar um volume significativo de APIs foi o J2SE 5.0, e mesmo neste, vários acréscimos foram mera inclusão de APIs que já existiam (como JMX e JAXP) ou alterações incrementais de APIs já da plataforma SE (como JDBC RowSets). No Java SE 6, o número de novas APIs já foi menor, mesmo contando tais casos. E no Java SE 7, é ainda menor. Isso é natural, pois após um período de crescimento explosivo de APIs entre as versões 1.2 e 1.4, a plataforma Java estabilizou, e é bom que seja assim. Muita gente já acha o JRE muito grande, inchado. Nem todas as novas APIs devem ser empilhadas no JRE, só as realmente fundamentais.
Por outro lado, a inovação em outros aspectos não para nunca, de fato até acelera na medida em que menos esforço é investido em novas APIs. Temos um fluxo contínuo de aperfeiçoamentos da própria VM, prometendo avanços na compilação JIT de código, gerenciamento de memória / GC, concorrência, etc. Também há um esforço contínuo na melhora da implementação de APIs, por exemplo as de GUI (AWT, Java2D e Swing), sempre explorando melhor os recursos do hardware gráfico e de toolkits nativos de GUI. Além das novidades de sintaxe, é nessas áreas que o Java SE 7 apresenta seus maiores destaques. Assim, é basicamente disso que vamos falar neste artigo.
Java SE 7 versus JDK 7
Uma consequência deste foco do Java SE 7 – em fatores de implementação, não necessariamente novas APIs – é que muitas dessas novidades são, de fato, novidades do Oracle JDK 7, não do Java SE 7. Por exemplo: a nova pipeline da Java2D para o XRender, o maior destaque desta versão para GUIs AWT/Swing, é um detalhe de implementação da Java2D. Você não encontrará nenhuma JSR falando disso. Os padrões e APIs públicas não dizem nada sobre a implementação da Java2D: se deve ser feita com a GDI, X11, OpenGL, DirectX, CoreGraphics ou qualquer outra tecnologia. Até por que a maioria dessas tecnologias não é portável, mas sim amarrada a cada sistema operacional .
No entanto, o Oracle JDK é um padrão de fato. Seu código-fonte é licenciado para outros distribuidores. Alguns JDKs “alternativos”, como o da HP para HP-UX, são meros portes para outra plataforma, 99% iguais à versão da Sun / Oracle. O Apple JDK é um pouco customizado, especialmente nas tecnologias de GUI. Já o JRockit e o IBM JDK possuem VMs independentes, mas reusam o grosso das APIs. Finalmente, no terreno do Java Livre, o OpenJDK também é basicamente uma cópia do código da Oracle, exceto por customizações pontuais, em geral focadas na substituição de alguns componentes não-livres do Oracle JDK.
Isso significa que, embora este artigo cubra vários itens que são “detalhe de implementação”, na prática estas novidades, e o conhecimento delas, são válidos para diversas outras distribuições da plataforma Java SE 7. Por exemplo, o XRender acabará aparecendo na maioria dos JDKs para Linux e Unix baseados no código da Oracle. Já o novo coletor G1 deve aparecer em alguns (como OpenJDK, Apple JDK e HP-UX JDK), mas não necessariamente em todos (por exemplo o IBM JDK tem uma VM totalmente independente, e não irá incorporar o G1).
"
ATENÇÃO! A exibição deste artigo foi interrompida.
Este é um post disponível para assinantes MVPEste post também está disponível para assinantes da Java Magazine DIGITAL ou para quem possui Créditos DevMedia. Clique aqui para saber mais!

Você está em:
canal Java
Publicidade
Osvaldo Pinali Doederlein
Space do autor
é Mestre em Engenharia de Software Orientado a Objetos e Arquiteto de Tecnologia da Visionnaire Informática, trabalhando em projetos de software e prospecção tecnológica.
Space do autor

Estudo comparativo entre banco de dados IBM Informix e Microsoft SQL

0
0
