segunda-feira, 26 de dezembro de 2011

Mitos e verdades sobre o Java e o opensource, o que foi feito e o que esperar para o 2012





             
            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




2 comentários:

  1. Ótimo post Otávio. Parabéns, ajudarei a divulgar!

    Abraço.

    ResponderExcluir
  2. 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!

    Afinal, 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!

    ResponderExcluir