Archive for novembro, 2006

JustJava 2006 – Desktop em minutos com genesis, Matisse, Java WebStart e JSR-296

terça-feira, novembro 28th, 2006

O JustJava 2006 acontecerá nos dias 30/11-2/12, quinta à sábado dessa semana. Na sexta-feira, às 14:00, junto os outros commiters (desenvolvedores) do genesis, Allan Jones e o mestre Raphael Winckler, vou apresentar a palestra Desktop em minutos com genesis, Matisse, Java WebStart e JSR-296.

A abordagem será ainda mais prática do que a mostrada no Conexão Java, mas no final pretendo abordar com mais profundidade o que podemos esperar de melhorias no desktop. A descrição encontra-se no fim do post.

Uma das coisas que me deixou feliz hoje foi o fato de usuários do genesis terem respondido dúvidas de outros usuários. Obrigado por acreditarem no nosso trabalho!

PS: Não esqueci do post sobre gerenciamento de versões; simplesmente tenho estado ocupado demais pra escrever coisas mais “filosóficas”.

Desktop em minutos com genesis, Matisse, Java WebStart e JSR-296

Embora haja alguns casos de sucesso de aplicações Swing, o desenvolvimento de aplicações desktop corporativas em Java ainda é caro, demorado e complexo. Em vista da necessidade do mercado, muitos
avanços têm sido feitos nessa área nos últimos anos, mas o problema ainda persiste.

O objetivo desta palestra é mostrar, através do desenvolvimento de uma aplicação durante a própria palestra, como que o uso combinado do framework open-source genesis, do plugin do NetBeans de desenho de interfaces Matisse e da tecnologia Java WebStart podem tornar simples, rápido e produtivo a produção de aplicações desktop comerciais. Além disso, será considerado como a JSR-296 (Swing Application Framework), que será parte do Java 7, padronizará e simplificará ainda este cenário.

Clipper esta vivo

quarta-feira, novembro 22nd, 2006

Uma thread no GUJ sobre uma pesquisa sobre o mercado de desenvolvimento trouxe um certo saudosismo. Acontece que o Maurício Linhares postou a respeito de um projeto open-source que permite rodar aplicações Clipper no Linux.

Fuçando um pouco o link inicial, descobri os dois principais projetos open-source nessa linha: Harbour Project e xHarbour. Na verdade, eles fazem muito mais do que apenas permitir rodar no Linux; suportam vários SOs, eliminam as diversas limitações de tamanho que haviam no Clipper, possuem extensões da linguagem, como for each e suporte a blocos C inline, além de diversas bibliotecas de extensão pra trabalhar com multithreading, HTTP, FTP, emails, XML e afins.

Flipper (para os íntimos) foi o meu primeiro ambiente de desenvolvimento sério (nunca fiz “sistemas sérios” com BASIC, Pascal, C e afins) e, lendo os livros do nosso amigo Ramalho e brincando um pouco em casa, eu criei uma série de bibliotecas OO que usava nos meus programas, inclusive uma que implementava a maioria dos controles gráficos (combobox, radio buttons, tabs) em cima do sistema GET. Pena que perdi tudo numa máquina em que o HD foi pro espaço.

Naquela época, quando comecei a brincar com VB achava um lixo justamente por causa da falta dessas funcionalidades avançadas, especialmente OO, que eu conseguia emular em Clipper. Quando eu vi o Delphi – ok, Object Pascal, seus puristas! – achava que era a melhor plataforma pra época, mas sentia falta de algo inovador. Foi nessa época que saiu uma Informática Exame falando de Java – que tenho até hoje – e que eu me interessei pela linguagem e visualizei que seria quente no mercado. Fiz um ótimo negócio, porque quando eu havia dominado a plataforma, com meus 18 anos, o mercado explodiu.

E alguns anos depois estamos aqui, no Blog do Mister M, falando geralmente de Java e de boas práticas no ciclo de vida do desenvolvimento (como no caso do CVS, de que pretendo falar em breve, ou de como fazer cronogramas). Eu acho que devo isso de certa forma ao Clipper e aproveito esse post pra prestar minha homenagem. Saudades… :-)

Palestra do Conexao Java no ar

segunda-feira, novembro 20th, 2006

Como prometido, coloquei a palestra do Conexão Java na seção de Palestras do blog. Pretendo postar o demo em breve também.

Review do Conexao Java 2006

segunda-feira, novembro 20th, 2006

Fui só no segundo dia do evento e acabei chegando só 10:20. A localização do evento foi muito melhor este ano, principalmente porque entendo da Vila Olímpia :-)

O primeiro conhecido – virtualmente, nunca havia encontrado em pessoa – que avistei foi o Rubem Azenha, do Mentawai, que me explicou onde retirar as credenciais. Aí, uma surpresa: o Anderson, que era da Sucesu, estava coordenando o evento dos caras. Peguei minha credencial e o kit do evento e dei uma entrada no auditório pra ver como era o ambiente e arrumar minhas coisas. Era a palestra da IBM sobre SOA. Aparentemente ele não estava vendendo o WebSphere e sim explicando como adotar SOA inicialmente numa empresa, o que eu achei muito bom.

Quando sai, conversei um pouco com o Rubem e ele ficou curioso sobre como o genesis conseguia implementar a remotabilidade transparente, que permite executar métodos de POJOs criados diretamente com new em um servidor Java EE ou em modo local sem exigir qualquer mudança no código fonte. Acabamos devaneando um pouco sobre a história do genesis, coisas que sinto falta no Spring e outros assuntos diversos. Nesse meio tempo, falei um pouco com o Eduardo Bregaida, mal reconheci o Senger sem sua extensa cabeleira, vi a Yara com a futura instrutora da Globalcode (a filha dos dois) e dei oi pro Rafael Steil e pro Diego Plentz (desculpa não ter conversado com vocês).

Finalmente – o evento estava atrasado – o Anderson disse que podia ir pra acertar o ambiente e comecei minha palestras as 11:50. Como combinado, falei sobre desenvolvimento desktop, apresentando as opções de tecnologias de UI, ferramentas de design visual, binding, distribuição e integração com o backend. Essa foi a parte chata, porque divertido mesmo foi quando me arrisquei e comecei a fazer um CRUD do zero em plena palestra. Desenhei uma tela com uma tabela listando algumas propriedades de um bean, um botão de Novo, Editar e Excluir e comecei a fazer tantas coisas funcionar quanto possível. FIz a listagem, a seleção funcionar, a lógica de habilitação dos botões Editar e Excluir, a exclusão em si e ainda acrescentei a pergunta de “Deseja realmente excluir este usuário?” antes da exclusão, a pedido da platéia. O mais divertido é que criei um usuário pro Rubem que apaguei diversas vezes durante o demo. :-P Ainda mostrei a aplicação rodando localmente e remotamente com o mesmo código e mostrei um pouco de como funciona o Java WebStart. Deu pra mudar a percepção da galera sobre o desenvolvimento desktop e mostrar como a combinação Matisse + genesis é extremamente produtiva. A receptividade foi ótima e considero que foi minha melhor palestra até hoje. Se você assistiu a palestra e quiser deixar sua opinião, agradeço!

Depois da palestra, respondi algumas perguntas e fui almoçar com o Hideraldo, Renato Câmara e o Rodrigo Santos. Como tinha outro compromisso, tive que ir embora logo após o almoço e não pude conversar com o povo nem assistir outra palestra. Depois posto os slides da palestra e a demonstração.

PS: Sim, em breve escrevo sobre boas práticas de gerenciamento de releases com CVS… :-P

Resumo

quinta-feira, novembro 16th, 2006

Bom, muito tempo sumido, muitas coisas acontecendo, então, lá vai:

  • A implementação das três grandes plataformas Java (ME, SE e EE) foi liberada como open-source sob a licença GPLv2 (com a Classpath exception pro SE e EE) nesta segunda, dia 13. Isso já havia sido cogitado no blog no dia 27/10. Quem lê o Blog do Mister M, sabe antes :-)
  • Vou apresentar uma palestra no Conexão Java 2006, Desenvolvendo aplicações desktop em Java: presente e futuro, no próximo sábado. Essa palestra vai apresentar, de forma prática, o leque de opções para desenvolvimento desktop que temos, um dos caminhos a seguir, e o que esperar das três JSRs relacionadas ao desktop que devem ser parte do Java 7. Já minha palestra no JustJava 2006, Desktop em minutos com genesis, Matisse, Java WebStart e JSR-296, vai ser bem mais focada em explorar essa arquitetura de desenvolvimento e em mostrar como ela vai evoluir com (e ajudar a evoluir a) JSR-296.
  • O tráfego na lista do genesis tem aumentado bastante. Bom saber disso :-) Pretendo fazer a release 3.0-EA5 ainda esse mês.
  • Se você é membro individual do JCP e está disposto a colaborar com uma JSR que vai resolver um dos problemas fundamentais do Java SE, mande um email. Vem coisa boa por aí…
  • Um dia desses, em alguma lista ou fórum brasileiro de Java, alguém perguntou sobre boas práticas de gerenciamento do CVS/Subversion para os diferentes ambientes e ciclos de release das aplicações. Eu já havia pensado em blogar sobre isso, pois já fiz de diversos jeitos e tenho alguns exemplos de quais estruturas adotar para cenários diferentes. Se mais alguém estiver interessado, deixe um comentário e talvez eu aborde esse tema no blog em breve.