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. Em 2012 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.
Saiba mais: Guia Completo de Java
- 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).
- 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.
- 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.
- 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.
Saiba mais: Curso Completo de Java
- 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.
- 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.
- Que códigos diferentes são esses?
Posso citar, por exemplo, a parte que renderiza os componentes em Swing.
- 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.
- 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
- 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.
- 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.
- 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.
- 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.
- 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:
- 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.
- 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.
- 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.
- OpenJDK - Wikipédia
- The Java is Faster than C++ and C++ Sucks Unbiased Benchmark
- Java vs. C++ 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
- Java running faster than C