Carreira Dev

20 nov, 2009

Veja o que aconteceu na The Developers Conference 2009 – Florianópolis

Publicidade

Aconteceu no dia 9 de novembro a The Develper’s Conference 2009 (TDC), maior evento Java do país, em Florianópolis. Tive a oportunidade de ir e relato aqui como foi essa ótima experiência.

A 3ª edição do TDC teve participação de

Chris Schalk
, Developer Advocate do Google,
que trabalha atualmente no time de Google App
Engine, plataforma de Computação em Nuvem do
Google, e também de

Alejandro Guizar
, Engenheiro de Software da
JBoss, que trabalha nos projetos jBPM, Web
Services e Riftsaw,
além dos principais nomes da comunidade Java mundial:

Ed Burns
,

Rod Johnson
e

Mike Keith
.

A
primeira palestra foi a do Rod Johnson, que era sobre o futuro do Java
daqui a cinco anos. Ele mencionou algumas coisas bem importantes:

  • Ruptura, grande mudança de paradigma
  • Cloud Computing
  • Polyglot persistence
  • Produtividade

Bom, a questão da Cloud é bem óbvia, ainda mais depois da aquisição
da Vmware. Mas um ponto que ele tocou muito importante é a questão de que
cada vez mais estamos lidando com um grande volume de dados, cada vez
maior e crescendo cada vez mais rápido. Então, existem todas as questões de
custos e de adquirir hardware up-to-front, junto com isso o fato de
existir muita aplicação porrada rodando sem um banco relacional, como BigTable,
que está ligado à questão de termos a necessidade de persistir dados em
diversas formas diferentes, além do Banco de Dados Relacional ou um
simples arquivo XML.

Outro ponto crucial desta apresentação e da apresentação que ele fez
sobre o Roo é a questão da produtividade. Fico feliz por termos pessoas
tão importantes na comunidade Java, como ele, preocupadas com isso, porque
este sempre foi um grande problema do desenvolvimento Java, a falta de
produtividade. A resposta do Rod foi basicamente usar o que temos de Java que é bom
para infra estrutura, ou seja, Spring, AspectJ mixados com DDD e tudo
isso rodando em um eclipse com AJDT e plugins da SS, dando assim
produtividade a comunidade java com o Roo.

No coffee break tive a oportunidade de falar mais com o Rod Johnson e o questionei sobre a criação do Roo, já que o Grails é muito maduro e uma solução
DDD produtiva, além de ser mantido pela SS, depois da compra da
G2One. Ele respondeu basicamente que a grande questão é a
produtividade, pois não existe nenhuma solução que tenha a
produtividade que o Roo tem para Java. Ele até brincou quando
perguntaram para ele sobre a produtividade de quem usa JBoss Seam, pois ele
considera de 1 a 5,5 para Grails e Roo e 2 para Seam, sem falar que
ele mencionou o overhead que o Seam tem em runtime.

Também tive a honra de ser apresentando ao Mike Keith, da ORACLE,
pelo Rod Johnson, que fez um comentário bem interessante para mim
sobre JPA 2.0 e balas de pratas. Em resumo ao questiona-lo se a cloud
iria resolver problemas que temos hoje de escalabilidade e que muitas
vezes resolvemos com particionamento horizontal, a resposta foi: “na
verdade, não, porque para certos cenários vai ser preciso descer o
nível de abstração e lidar com este tipo de coisas”. Então ele comentou
sobre as anotações do JPA e reparei que o JEE6 é recheado de anotações; ele disse que fica um pouco incomodado com o fato de o
desenvolvedor só colocar anotações e não saber o que realmente acontece
por baixo, e achar que isso resolve 100% de todos os problemas.

Não vou falar que o Vinicius Senger roubou a cena com a sua
apresentações dos robôs! Por sinal, ele e a Yara fizeram um vídeo
com uma música sobre Bugs muito bacana. Quer o ver se mais para frente
eles liberam este vídeo!

O Chris Schalk, infelizmente, não pode participar do evento porque teve
problemas ao entrar no Brasil. Então o Rod Johnson fez uma
apresentação de Spring Real Object Oriented que foi ótima.

Foi muito legal porque, além de mostrar o framework funcionando com o
Spring STS (IDE da SS), ele falou de diversos detalhes de implementação,
como o uso de AspectJ e o plugin AJDT do eclipse e o uso forte de DRY e
DDD.  O Roo gera as classes Java no estilo Groovy, só com atributos e
com algumas anotações, o código de getters/setters e toString por
exemplo reside em aspectos, muito bom o “round-trip” inicial do Roo.

Outra coisa que gostei foi o fato de o Roo não te obrigar a trabalhar com
um Primary Key, pois é um conceito relacional e não OO, isso fica a
cargo de um aspecto. Por sinal, como fiquei com vontade de programar
quando estava vendo o Rod fazer a demo ao vivo!

Outro ponto legal que
o Rod abriu foi que as anotações do Spring Roo são de nível de retenção
“source”, ou seja, não existem em tempo de runtime, são meta-dados
para o Roo se achar nas gerações de código; gostei muito desta
abordagem.

Quando falei com o Rod Johnson de novo no segundo intervalo, o questionei sobre as escolhas de design do Spring Batch e ele mencionou que não se
envolveu com o projeto, eu percebi. Apesar do framework ser muito bom
e ter boas abstrações, alguns detalhes que poderiam ser melhores,
como a questão do TX manager obrigatório e todo o setup para fazer uma
simples leitura do banco e gerar um CSV. Outro coisa que perguntei a
ele foi sobre Scala. Perguntei quando vamos ter uma boa
integração de Scala com Spring, assim como temos com JRuby, Groovy e
BeanShell. Ele disse que está nos planos da SS ter esta integração e
ainda escrever servlets no Spring MVC com Scala. Não vejo a hora de isso
acontecer.

Depois, o Ed Burms falou sobre JSF 2.0, basicamente sobre as grandes mudanças, referentes a:

  • View
  • Model Integration
  • Navigation
  • Lifecycle

JSF 2.0 vem com um bom suporte a Ajax, a resolução do PRG que
agora vai! Eu nunca entendi porque ele fizeram nas versões anteriores
daquele jeito, mas… Um ponto importante que o Burms mencionou é que JSP é
@Deprecated, concordo! Também acho que o facelets é o scriplet ultimate
killer, mas mesmo assim, a idéia de um XML verbose para camada de
apresentação ainda não me ganhou, se tem muito overhead é porque
não é produtivo, legível, faça um tela complexa com Ajax, você vai ver
do que estou falando. Neste ponto acredito que tanto o IDE quando o
ASPX estão melhores.

Outro ponto bacana do JSF 2.0 é o implicit navigation. Com isso
você pode navegar sem ter aqueles mapeamento em XML, o que deixa as
coisas mais simples e produtivas. Por fim, foi legal saber que
o projeto ScrumToys, que é brazuca, vem com o Netbeans e é o projeto do
JSF, o Ed Burms implementou a parte de validação da aplicação. Muito
legal a iniciativa.

Eu fiquei com uma grande “dúvida”… se algum
especialista em JSF 2.0 de plantão esta por ai pode de ajudar. Um
recurso novo é Project Stage, que você configura e diz se o projeto
está em desenvolvimento, testes, produção etc. Isso é legal, mas… isso não
é um pouco bem Waterfall? Porque na prática eu sempre vou ter um
pedaço da aplicação em produção e outro sempre em
desenvolvimento/testes. Não vejo como uma única configuração pode fechar
com este cenário. E vocês?

Fechando o evento, aconteceu um painel onde os três palestrantes discutiram sobre o futuro do Java com
questões como Cloud, OSGI, persistência e até mesmo Androind x IPhone. Gostaria que tivesse tido mais tempo nessa discussão e
espaço para maior interação. No mais a conferencia foi muito boa, valeu
muito a pena.

Mais fotos do evento podem ser acessadas no meu flickr aqui. Também fiz um ppt com o resumo do evento que pode ser acessado no meu Slideshare aqui.

Abraços e até a próxima.