JavaOne Brasil 2010: eu fui!

Nos dias 7 a 9 de dezembro aconteceu em São Paulo o Oracle Open World que, dessa, vez teve o acréscimo do JavaOne. Foi o primeiro JavaOne no Brasil, evento que ocorre anualmente em São Francisco desde 1996.

As últimas semanas foram bastante agitadas: desde a aprovação do Java SE 7 e 8 até a saída da Apache do JCP. As novas versões do Java foram amplamente discutidas nas palestras, já a saída da Apache e afastamento do Google eram assuntos no lobby, almoços e happy hours. O evento foi organizado pela Oracle junto ao seu conhecido OpenWorld e depois de um segundo dia de palestras com as salas superlotadas, a organização ouviu o público e conseguiu mover algumas palestras para o auditório principal além de reapresentar outras. A Oracle também se demonstrou bastante aberta a conversar com a comunidade e grupos de usuários, surpreendendo a muitos.

Fotos de @loiane: http://www.flickr.com/photos/loiane

Sobre o evento, a pergunta que todos queriam fazer era sobre o futuro do Java e quais seriam as intervenções da Oracle para dar continuidade à plataforma. Algumas pessoas da comunidade Java ficaram receosas pós processo de aquisição da Sun pela Oracle, assim como o pai da tecnologia James Gosling, que discorreu sobre alguns tópicos em uma forma muito bem humorada recentemente. E acredito que a maioria dos participantes do evento se surpreenderam com o tratamento que a empresa está demonstrando com a tecnologia. Todos os sistemas da empresa são baseados em Java, logo a possibilidade deles estragarem com algo diminuiu bastante.

Os keynotes do primeiro dia retrataram bem o que seria o evento, uma cobertura completa das plataformas SE, EE e, por incrível que pareça, a ME. Muitos notaram uma preocupação da Oracle com o ambiente Java ME, quase que calando um pouco os críticos que já a taxavam como morta. Infelizmente, para quem desejava saber um pouco mais sobre o posicionamento da Oracle em relação ao Android (Dalvik) e ao processo contra a Google, não foi possível, seus funcionários não podiam nem responder perguntas sobre o assunto.

Adam Messinger, vice-presidente  e responsável pelos investimentos na tecnologia, deixou bem claro a ideia que já vem batida há algum tempo: Java como plataforma e não somente como linguagem. O VP deixou claro que algumas evoluções na tecnologia vieram não para melhorar o desempenho da linguagem Java, mas sim para melhorar a performance de linguagens dinâmicas que rodam na JVM, citando o bytecode invokedynamic como exemplo.

Danny Coward foi o representante do ambiente SE. Sim, o Java SE 7 vai ser lançando em julho de 2011 e, posteriormente, o Java SE 8, em julho de 2012. Essa divisão veio pois se eles fossem implementar tudo que estava proposto para a versão 7 iria demorar mais ainda.

Sobre as alterações, Danny ressaltou sobre o Project Coin, Multi-catch, DaVinci Machine, modularização e por fim ele até fez uma wish-list do que ele gostaria que fosse mudado na plataforma futuramente. O foco das mudanças para a versão 7 é manter o código mais limpo e consequentemente torná-lo mais fácil de ler.

Uma das pequenas mudanças que já ajuda muito é o operador diamante, que possibilita escrever instanciações com generics de maneira mais curta com inferência do tipo no lado direito da expressão:

Map<Integer, List<String>> meuMap = new HashMap<>(); 

Outra novidade é o novo try que trata de fechar os recursos de maneira segura e garantida. Um uso bem comum é com java.io:

try (InputStream file = new FileInputStream(new File("input.txt"));
      OutputStream output = new FileOutputStream (new File("output.txt")); ) {

//seu código aqui
}

Pronto, esse código já vai tentar fechar corretamente todos os seus recursos. Caso queira que o Java feche algum recurso de algum objeto que você criou, basta que sua classe implemente a interface java.lang.AutoClosable.

Dentre os elementos da sua wish-list, o mais curioso talvez seja uma implementação default para as interfaces. Isso evitaria a quebra de contratos e ajudaria a colocar métodos em uma interface sem quebrar as classes que a implementam, mas muitos consideram uma forma de herança múltipla:

public interface Collection<E> extends Iterable<E>{
    public T filter(Predicate p) default Collections.filter();
}

Por fim, mencionou também o projeto Lambda, que infelizmente vai ficar para o Java 8.

Arun Gupta foi o representante do ambiente Java EE, mostrando algumas alterações no GlassFish 3.1, que agora incluirá suporte a cluster. A propósito, vale ressaltar o tempo curtíssimo de redeploy do GlassFish. Alguns exemplos em outras palestras envolviam colocar EJB em uma Servlet, e o tempo de atualização chegou a ser ínfimo.

Gupta ganhou a simpatia de todos, era um dos únicos que não usava terno e participou pacientemente de todas as discussões. Inclusive uma que aconteceu no segundo dia sobre frameworks web. Ele defendeu o uso de JSF 2 com CDI, mas não fechou as portas para outras tecnologias como Wicket, Spring e VRaptor. Salientou também a maturidade do GlassFish, já que a versão 6 já está há 1 ano no mercado e o GlassFish continua sendo o único servidor conhecido a ter full compliance.

Vimos também menções ao JSF 2.1, 2.2 e JPA 2.1, inclusive ao ambiente Java EE 7 e 8 com inclusão de WebSockets e uma melhoria também no JMS, esse que não recebe uma atualização faz um bom tempo.

Haverá também uma reformulação ainda não definida para a API que trata de REST – JAX-RS (definitivamente o assunto da moda). Inclusive o VRaptor foi citado como referência para como a nova versão da tecnologia deveria ser encaminhada. Conventions Over Configuration e uma programação baseada em Objetos ao invés de String e Annotations são os principais focos.

Outro ponto interessante de ser salientado foi a postura da Oracle com relação as IDE’s para desenvolvimento. Para quem estava acostumado a ouvir só sobre NetBeans nos tempos de Sun, agora a situação foi diferente. Os live demos, principalmente quando se tratava de ambiente EE, eram feitos no Eclipse, InteliJ e NetBeans. Indubitavelmente uma postura a ser admirada. Além disso, com o recente lançamento do Netbeans 7 beta, podemos ver que a Oracle continua a investir na ferramenta.

Jerome Dochez falou sobre a API mais interessante do Java EE 6, o CDI. Ele explicou elementos como @Produces, @Typed, @Named, @Model, @Inject e @Stereotype. Todos eles abordados no nosso curso FJ-26.

Greg Bollela falou sobre o ambiente ME, uma frase do Adam Messinger foi: “We wanna bring back Java roots, write once, run anywhere“. Na palestra falou-se sobre dispositivos móveis e toda uma reformulação que está sendo feita em sua API. O lwuit foi um dos mais citados.

Foi um evento que tranquilizou muitos em relação ao futuro da tecnologia e mais uma vez mostrou a força que tem comunidade Java, que há tempos saltou de focar na linguagem para abordar mais firmemente a plataforma. Essa visão multilinguagem da plataforma é algo que temos visto na comunidade há tempos com iniciativas como o ProgramadorPoliglota e eventos como o QCon, mas é ótimo ver a Oracle caminhando também nessa direção. Acompanhemos os próximos passos da plataforma Java e até o JavaOne Brasil 2011!

10 Comentários

  1. Marcelo Quinta 13/12/2010 at 10:24 #

    E aí, Raphael, blz?!
    Parabéns pelo post. Resumiu MUITO BEM o que aconteceu no evento, sem ficar naquela de “tomar partido” como vi por aí.
    Prazerzão te conhecer lá cara.
    []s.

  2. camilo lopes 13/12/2010 at 14:08 #

    pow excelente post, muito bem escrito e as informações bem distribuida, nao deu para ir ao JavaOne, mas pelo post, é como se eu tivesse assistido cada palestra. Realmente. Bom post. E o melhor foi ter lido sobre o Vraptor diante as citações da Oracle.

    flw.

  3. Raphael Lacerda 13/12/2010 at 15:38 #

    @Marcelo Quinta
    Prazer foi todo meu cara.. vc despertou o meu interesse pelo ME… Saber que existem pessoas boas lidando com o ambiente é muito satisfatório.

    @Camilo Lopes
    Foi bem uma resumida mesmo! Pois me basei somente nas palestras dos keynotes! Mas teve outras tantas palestras enviadas pelo pessoal da comunidade com uma temática super interessante também!
    Papo para um outro post!

  4. André Breves 13/12/2010 at 22:07 #

    Ae Rapha, parabéns, ficou muito bom!
    Eu que não fui consegui entender bem como foi o evento.

  5. Raphael Lacerda 13/12/2010 at 22:42 #

    @Breves
    Tnks! Vc é o culpado de tudo isso!

  6. Sistema Empresa 10/05/2011 at 19:07 #

    Muito bacana o evento, uma pena não ter participado. Muito interessante o conteúdo.

Deixe uma resposta