
Esse
ano um dos grandes “boom” do mundo java foi o openjdk, um
projeto open source da JVM, recentemente ele evolui de um modo
exponencial, no entanto existem alguns mitos além de algumas pessoas
não o conhecerem. Alguns o conhecia como o “irmão pobre” do JDK
da SUN (agora da Oracle), mas muita coisa mudou ao longo do início
do projeto é uma visão tão primitiva quando achar que o Linux é o
Sistema Operacional da tela preta. O projeto ficou muito popular com
a remoção da licença temporária de utilizar o jdk da Sun nas
distribuições Linux, apesar de várias contradições a verdade é
que as Distribuições Linux não perderam acesso a uma jvm fechada,
eles possuem um projeto aberto e maduro e muito forte pronto para
atender suas necessidades. Esse ano o java teve grandes avanços e a
grande maioria ligados a projetos open sources. Esse post foi feito
em modo de quiz, perguntas e respostas, sobre algumas duvidas
relacionadas ao openjdk, mito sobre o java e o que foi feito e o que esperar do java em
2012.
1- O
que é o openjdk ?
O
openjdk é um projeto que foi iniciado pela Sun Microsystems,
atualmente mantido pela por várias empresas e a comunidade, para a
criação de um Java Development Kit baseado totalmente em software
livre e de código aberto. O projeto foi iniciado em 2006 e tem como
base o HotSpot ( a jvm da Sun).
2 – Existe
outros JDKs além da Oracle ?
Sim
existe e o openjdk é um exemplo desse,
Existe também o IBM J9, IcedTea,
Hotspot (Da antiga Sun), jRockit (da Oracle), Apache Harmony ,Hewlett
Packard JVM entre outras.
3 – Com
tantas JDKs qual delas é a referência ?
A
partir da nova versão do java, o java 7, a implementação de
referência é o openjdk.
4 – Qual
a vantagem de se usar o openjdk ?
A
primeira vantagem é que ele é open source ou seja você pode estar
estudando o seu código fonte.
Ela
agora é a implementação de referência ou seja se você quer
fazer um aplicativo e quer que rode em qualquer JVM, usando o
openjdk isso pode ser garantido.
A
comunidade java é certamente uma das comunidades mais fortes do
mundo. A jvm do projeto, por exemplo, está passando por constantes
refatorações para melhoria de performance, atualização de
bibliotecas e atualização do código sem falar que para adicionar
qualquer recurso é necessário que se tenha testes.
A
Oracle doou o código fonte do jRockit e no java 8, previsto para o
final de 2013, o código seja integrado com o Hotspot. Ou seja no
openjdk haverá os melhores de dois mundo em um só lugar.
Várias
empresas fazem parte desse projeto, ou seja é uma JVM com o
Know-how de várias empresas em todo o mundo. Empresas como IBM,
Apple, SAP, Mac, Azul, Intel, RedHat etc. fazem parte do projeto.
Se
a Oracle deixar o java ( Algo que eu acho muito difícil por
diversos motivosl) e deixar de fazer a JVM. O openjdk não será em
nenhum momento abalado já que existem outras empresas apoiando além
da comunidade.
5 – O
openjdk é somente para uso acadêmico e não pode ser usado em
sistemas sérios ou em projetos em produção.
Certamente
esses é um dos maiores mitos que existem. Há algum tempo atrás o
Twitter trocou o background do Ruby para java, por questão de
performance e ele está utilizando o openjdk. O Twitter possui
milhares de requisições, cerca de 250 milhões de tweets por dia, e
é utilizado no mundo inteiro. Inclusive o Twitter está fazendo
parte do projeto e está trazendo um pouco de sua experiência com
milhões de requisições para o projeto além de ajudar no
self-tuning previsto para o java 9. O openjdk em um cenário mundial
é a segunda mais utilizada no mundo perdendo apenas para o HotSpot.
6 – Qual
a diferença entre a JVM da Oracle e do OpenJdk ?
A
diferença entre essas duas JVMs está na adição de códigos
fechados além de pequenas mudanças na implementação para
implementações fechadas para a JVM da Oracle, a dessemelhança é
de cerca de 4% de código. O que acontece é que nem todos os códigos
foram abertos com êxito já que alguns pertence a terceiros e são
apenas licenciados na época pela Sun.
7 – Que
códigos diferentes são esses ?
Posso
citar, por exemplo, a parte que renderiza os componentes em Swing.
8 – Como
anda o trabalho com o openjdk ?
O
projeto anda a todo vapor, existem diversas frentes de trabalho nele:
Integração
jRockit e HotSpot
atualização
de alguns códigos para o java 7
atualização
de Libs para o java 7
Correções
de Bugs no java 7
Sem
falar nos trabalhos também já iniciado com o java 8
etc.
9 – Quando
está previsto o novo java 8 ?
A
princípio o java 8 viria no ano que vem, mas com o intuito de
facilitar a adesão da JVM nas empresas, as atualizações
acontecerão em ciclos de dois em dois anos. Assim o java 8 está
previsto para o final de 2013.
Com
as seguintes novidades:
Conclusão
da integração entre o jRockit e HotSpot gerando o HotRockit
JSR
308: Annotations on Java Types
JSR
310: Date and Time API
JSR
TBD: More Small Enhancements to the Java Programming Language
JSR
335: Lambda Expressions for the Java Programming Language
JSR
TBD: Java Platform Module System
Também
já existem alguns planos para o java 9 é caso do self-tuning além
da comunicação de várias linguagens dentro da JVM
10- Essa
separação do java 7 em duas partes realmente valeu a pena ?
Na
minha opinião teve grandes vantagens sim, dentre elas posso citar:
Trouxe
uma nova versão ao java, coisa que não acontecia a cerca de 6
anos.
Permite
a correções e atualizações da jvm sem esperar o lançamento do
jdk.
Deixou
as atualizações mais tangíveis deixando a entender o constante
movimento da linguagem além de ciclos definidos, de aproximadamente
dois anos, de atualização.
As
grandes modificações como o lambda e o jigsaw, virão com ainda
mais maturidade já que obtiveram mais tempo para serem trabalhados,
vale ressaltar que mesmo com essa divisão em duas versões em
nenhum momentos os projetos pararam.
11 – Com
o lançamento do java 7 o que acontecerá com o 6 ?
Haverão
atualizações públicas até meado de 2012, após isso caso exista
atualização serão apenas para atualizações de segurança.
12 – E
sobre as certificações o que acontecerão com elas ?
Essa
é uma pergunta que eu não sei responder, a certificação é um
produto da Oracle, ou seja a comunidade não tem participação
nenhuma sobre isso. Atualmente existe uma versão beta do java 7.
Muito se especula, mas até o momento a Oracle não deu muito
detalhes o que se sabe é que mudou o nome, provavelmente haverá um
curso antes da certificação além do custo da certificação elevar
consideravelmente.
13 – Então
o java Core é desenvolvida somente pela Oracle ?
Não,
são duas coisas bem diferentes a certificação que é mantida por
ela e a linguagem, plataforma e a JVM que são mantidas por diversas
instituições como a IBM, Apple, SAP, Mac, Azul, Intel, RedHat,
Twitter, comunidade, a própria Oracle etc.
14 – E
o acontecimento entre o Oracle e o Google ?
Quando
esse fato aconteceu eu estava apenas começando com a comunidade java
então deixarei o meu amigo o Bruno Souza, o javaman, responder essa
pergunta.
A
primeira é uma palestra feito no TDC 2010:
E
também uma entrevista feita pelo Paulo Patto que postou em seu Blog:
15 – Com
a entrada a Oracle o java vai morrer ? Vale a pena ainda estudar java
?
Muito
pelo contrário, a Oracle vem ajudando de um modo muito forte, doando
código para o openjdk, envolvendo todos os JUGs na festa do
lançamento do java 7, fez uma versão open do java FX, voltou a
trabalhar na plataforma ME etc.
Sobre
a morte do java, isso certamente levará bastante tempo vale
ressaltar que hoje java é a linguagem mais utilizada no mundo, a
escolha número um na escolha de projetos empresariais,
aproximadamente 90% das aplicações empresariais do mundo são em
java além de mais de 9 milhões de desenvolvedores ao redor do
mundo. Mesmo se o java não tivesse nenhuma atualização por esses
números vale muito a pena estudar a linguagem, hoje se possui
cronogramas até para o java 9, isso inclui componentes em html 5,
computação nas nuvens dentre outros recursos.
16 – O
java é muito lento.
Com
o surgimento de máquinas com o processadores binucleares e a
evolução do projeto o java ganhou bastante notoriedade em relação
a performance. Inclusive sendo comparado com o C e o C++ mostrando
que seria até mais rápido. O líder de desenvolvimento do GMAIL
Paul Buchheit afirmou em seu blog que com seus testes, mesmo tendo
sido tomado todos os tipos de otimizações do GCC o código de seu
benchmark roda mais rápido em Java que em C. Existem também outros
testes confirmando essa afirmação.
 |
| fonte: http://keithlea.com/javabench/data |
|
17 – O
que foi feito nesse ano com o java e o que esperar para o futuro ?
Esse
ano certamente tiveram algumas novidades para o java, podemos citar:
O
lançamento do novo java 7, após alguns anos sem o lançamento de
uma JDK.
O
openjdk se tornou a versão padrão da JVM.
O
java FX com um projeto open source.
Planos
para o java 8 e 9, java EE 7.
O
java ME voltando a ter trabalhos e evoluir junto com as outras
plataformas.
Versão
do jdk para Mac.
SouJava
e o LondonJug fazendo parte do JCP.
Maior
integração entre os grupos de usuários do Brasil (BrasilJUGs).
Sobre
o que esperar para o futuro:
Mais
trabalhos voltados em volta da JVM
Integrações
ainda maiores entres os JUGs do mundo
Mais
empresas utilizando e também contribuindo na openjdk
O
javaFx rodando em todos os SOs.
Mais
4 correções do java 7, indo até o update 6.
Ultima
versão pública do java 6
O
lançamento do java ME 7
Conclusão
Nesse
artigo foi falado um pouco sobre o projeto openjdk, verdades e mentiras sobre o java algumas coisas
que foram feitas nesse ano além de algumas expectativas do futuro da
tecnologia e plataforma. Com tantas expectativas e trabalhos em
constantes movimento é ter esperança de um 2012 com o java movendo
para a frente.
Referência:
The
Java is Faster than C++ and C++ Sucks Unbiased Benchmark
Mitos
do Java e o opensource o que foi feito e o que esperar para o 2012
Paul
Buchheit, líder do desenvolvimento do Gmail, java running faster
than c