JavaOne 2011 Brasil

Nos dias 6, 7 e 8 de dezembro participei no JavaOne 2011, evento realizado pela Oracle. O evento ocorreu no Transamerica Expo Center, em Santo Amaro, São Paulo/SP. A seguir faço um relato dos pontos principais que considero válido ressaltar acerca do evento.

Péssima organização

Esse foi um dos pontos que me surpreenderam negativamente. Dos eventos anteriores que participei, antes organizados pela Sun, esse foi o mais desorganizado. Perdi ao menos 3 palestras nas quais tinha interesse por conta do reduzido espaço nas salas, enquanto em outras palestras sobravam muitas vagas. Um dos motivos, creio, foi devido a juntar dois eventos – o JavaOne com o Oracle OpenWorld. Não me pareceu uma boa ideia.

Não havia coffe-break, literalmente. A agenda não programava pausa entre as palestras nem o evento fornecia alimentos e bebidas diretamente. Ao invés disso, haviam dezenas de stands de parceiros; após fingir interesse em determinado produto/serviço, podíamos beliscar um salgado/doce e tomar uma bebida. No resto era tudo pago… e caro.

Qualidade das Palestras

Também deixou a desejar. Nos eventos anteriores, dado um determinado tópico, o palestrante era um renomado participante das especificações do Java. Nesse evento, em várias palestras, os palestrantes eram parceiros locais da Oracle. No meu ponto de vista isso contribuiu para a baixa qualidade de certas palestras, com meritosas exceções. Além disso, algumas palestras foram puras propagandas, o que irritava a audiência.

* Oracle WebLogic 12c

– pura propaganda

– não me interessa saber quantas vezes o weblogic é mais rápido que o IBM websphere

* XML-Free Programming

Stephen Chin e Arun Gupta.

Palestrado por dois representantes da Oracle, gostei dessa palestra. O foco foi defender os novos recursos da plataforma JEE para reduzir o excessivo número de configurações em XML que eram necessários para se programar. As anotações são muito bem vindas em vários cenários. Mas senti falta um melhor aprofundamento nas novas anotações que substituem as configurações XML. Poderiam ser melhor abordadas. Por exemplo, a nova tag @WebServlet… poderia ser dado uma demonstração prática do seu uso. Eles mostraram as novas anotações para criação de serviços REST. Uma das coisas interessantes, com a qual concordo plenamente, é a vantagem da checagem em tempo de compilação que as anotações conferem, diminuindo o número de erros de ClassCastExpcetion em tempo de execução. Isso foi citado como type checked dependency injection que, inclusive, favorece as ferramentas IDE em autocompletes.

* REST e Java – Melhores Práticas

Fábio Velloso

Para mim, que entendia muito superficialmente de REST, achei a palestra muito sucinta demais. Vi códigos interessantes, também com anotações, para criação de webservices REST. Mas deixou um pouco a desejar pela apresentação muito rápida e a falta de um exemplo prático.

* Design de código: a qualidade que faz a diferença

Apresentado por um palestrante da Caelum, achei a palestra divertida e instrutiva. Gostei da abordagem da comparação de bons em várias linguagens – algumas até que eu não conhecia.

Ele deu o link online.caelum.com.br para fazer cursos gratuitos de experimento do treinamento da empresa (um pouco de comercial).

* Coding DOJO em 5 minutos

Otávio Santana

Fiquei bastante decepcionado com essa apresentação. Tinha uma expectativa inicial e no início da palestra minha expectativa ficou ainda maior com a possibilidade de ver na prática a aplicação desse técnica de ensino de programação. Até entendi alguns conceitos, mas no fim prática se mostrou mal organizada. Por fim, ficou um gostinho em entender mais como seria organizar uma sala de DOJO e se a prática seria realmente efetiva com vendeu o palestrante.

Nessa palestra foi recomendado o livro “Arquitetura ágil”, supostamente do Martin Fowler. Não tinha conhecimento desse livro.

Também não entendi a nova anotação @Safevarags e para quê ela serve.

* Novidades do JSF 2.0

Com apresentadores parceiros da Oracle, da empresa 4LINUX, achei a apresentação interessante, mas faltou tempo para apresentar com maior profundidade, que o tema merecia.

Os apresentadores mostraram uma aplicação exemplo, que está hospedada em https://github.com/gabriel-ozeas/javaone2011

Ao fim, perguntei a um dos palestrantes sobre a experiência com o plugin M2E (Manen 2 Eclipse) e ele me disse que esse plugin, agora, está bem estável e funciona com a versão 3 do maven-eclipse indigo de maneira excelente.

Ele também usa um plugin (cargo) que realiza o deploy automático da aplicação web no jboss para realizar os testes de integração.

* Refactoring com JDK 7

Essa palestra foi um fracasso. O palestrante, cujo nome não anotei, ficou pelo menos 45 minutos de uma hora que ele tinha instalando o netbeans numa máquina de um audiente. O pouco tempo que sobrou não foi suficiente sequer para contextualizar a apresentação. Pura falta de organização.

* Formando Desenvolvedores Efetivos

Palestra ministrada por um parceiro da Oracle, Fernando Lozano, da empresa 4Linux, ele fez uma crítica interessante ao modo de ensinar em cursos e em faculdades. O mote da palestra é a má formação do desenvolvedores, egressos de cursos ou faculdades. Segundo a opinião do palestrante, as faculdades pecam ao ensinar exemplos fora da realidade; deveriam usar exemplos mais realísticos, com enfoque em manutenção de um sistema existente. Achei esse ponto de vista bem interessante e me fez repensar minhas práticas pedagógicas.

* Arquitetura e Modelo de Programação JavaFX

Joe Andresen

Palestra muito fraca. Tratou de forma superficial o JavaFX.

* Projeto Coin: Caras e Coroas

Dan Smith

Em resumo, achei essa palestra excelente. O palestrante abordou as alterações na linguagem, na versão 7 do Java SE, que simplificam e facilitam o desenvolvimento. Até esse ponto, nenhuma novidade. Recursos como inferência do tipo parametrizado, try-with-resources, multicatch, switch com strings, e outras modificações na linguagem já eram velhas conhecidas, anunciadas pelo menos desde 2009. O grande diferencial dessa palestra foi o foco em abordar difíceis decisão de compatibilidade retroativa que a equipe de implementação enfrentou. Achei bem interessante e válido entender a complexidade em se alterar uma linguagem com a responsabilidade em manter toda a base de código já escrito compilável.

* Projeto JigSaw – Putting it together

Matherey B. Nunez

A palestrante fez uma apresentação bem fluída, apresentando o que há de vir com o projeto JigSaw. Foi engraçado, depois de 20 anos escutando sobre o famigerado problema do DLL Hell das bibliotecas do Windows e, depois de muito tempo acreditando que isso não ocorreria (ou não com a mesma gravidade) na plataforma Java, escutar sobre o chamado problema de JAR Hell. O projeto JigSaw é uma nova especificação para estabelecimento de dependências de forma altamente configurável. O mais interessante e que, nessa proposta, ao invés de usar uma linguagem XML para a configuração das dependências, a proposta é o uso de uma linguagem específica para esse propósito, ou seja, uma DSL. O projeto JigSaw resolve grande parte do problema que o hoje é resolvido com o Maven, pelo menos com relação às dependências de módulos.

Link para vídeos do Java One dos EUA: http://www.parleys.com/#st=4&id=102979

Como ‘escapar’ caracteres dentro da propriedade Pattern no JasperReports

Essa dica pode parecer boba, mas apanhei um bocado para descobrir esse simples detalhe e acho que vale a pena registrar e compartilhar. Num determinado campo do Jasper Reports, eu queria exibir o símbolo percentual (%), mas sem que ele multiplicasse por cem, como é o comportamento padrão. Ocorre que o valor que eu tenho já é percentual e não em taxa unitária que, nesse caso, precisaria ser multiplicado por 100 para ser exibido como valor percentual.

Mas se você colocar no Pattern: #,##0.0000 %

Ela vai multiplicar o valor do atributo por 100 antes de exibir. Para contornar o problema coloque:

#,##0.0000 ‘%’

(caractere percentual entre pliques). Pronto! O valor é exibido sem a multiplicação.