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.

  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.

  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: