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
Ótimo post Otávio. Parabéns, ajudarei a divulgar!
ResponderExcluirAbraço.
Meus Parabéns! Acredito que aos poucos os mitos serão desmistificados, os mal entendidos elucidados e o preconceito - aquele conceito pré-concebido antes mesmo do contato para conceituá-lo - irá acabar!
ResponderExcluirAfinal, foi a filosofia Java que convidou a todos para uma incursão mais profunda no universo do desenvolvimento de softwares.
Mais uma vez, Meus Parabéns!