Screencast Seaside - Hello World

Este blog deixou de ser mantido, mas o autor continua escrevendo aqui. Não deixe de assinar o novo feed!

Acabei de subir para o servidor uma screencast que mostra um exemplo de como montar um hello world com o Seaside, um framework web para Smalltalk. Não estou com muito tempo pra ficar fuçando nele, mas até onde eu mexi, estou maravilhado (palavra gay essa palavra, mas pior que é verdade :P ).

Para se começar um projeto novo, é só acessar a página de administração e indicar um componente-raíz para atender a uma URI específica e pronto, tudo no jeito. Gostei disso, pois criar novos projetos web com o Java - independente de qual framework seja - é um pé no saco. Tanto é assim que a maioria das empresas/desenvolvedores criam um projeto blank para facilitar a coisa. (tá certo que os archetypes Maven ajudam bastante… pena que não são todos os frameworks que fornecem tal archetype para facilitar a criação de novos projetos).

Enfim… uma coisa que achei esquisita em relação ao Seaside é que a saída HTML não é gerada através de um template, mas sim programaticamente, com código Smalltalk. Por exemplo:

  1.  
  2. renderContentOn: html
  3.     html heading: ‘Hello, world’ level: 1.
  4.     html paragraph: [html text: ‘this is a paragraph!’].
  5.  

Na screencast criei um componente HelloWorldComponent e que cuja renderização é parecida com a listagem acima. A saída deste código será:

  1.  
  2. <h1>Hello, world</h1>
  3. <p>this is a paragraph!</p>
  4.  

Continuando, a primeira coisa que eu pensei quando vi o código Smalltalk para montar o HTML de retorno foi: “eca!”. Mas… depois de pensar um pouquinho, isso faz muito sentido. Um código Smalltalk é muito mais fácil de manter do que um template HTML ou semelhante, pois podemos a qualquer momento fazer refatorações dos mais diversos tipos sem quebrar o resultado. Além disso, como pode ser visto na screencast, o Seaside cuida para que o código gerado seja um documento XHTML válido e, portanto, compatível com diversos tipos de browsers.

Outro ponto interessante que se percebe na screencast é que o desenvolvimento e alteração da aplicação ocorrem com o servidor funcionando, não sendo necessário nenhum tipo de restart do mesmo durante o processo. Aliás, a screencast mostra um recurso muito massa do Seaside: durante o desenvolvimento de uma aplicação, podemos modificá-la diretamente através do browser, sem que seja necessário utilizar o Squeak!! No caso, eu alterei o método renderContentOn e modifiquei o estilo CSS da página, tudo diretamente através do browser. Além disso, o Seaside nos fornece diversas outras ferramentas, como um profiler, um link para o validador XHTML da W3C, um link para iniciar uma nova sessão etc. Isso tudo torna o desenvolvimento web bastante produtivo.

No entanto, estou tentando compreender uma coisa: como funciona o desenvolvimento de um aplicativo no Seaside em uma empresa, com designers e programadores? … quero dizer, não me passa pela cabeça um designer com o Squeak aberto, programando a saída HTML em scripts Smalltalk. :P

Mas enfim, no geral, estou achando muito legal. Comecei a ler hoje um tutorial que mostra a parte de continuations do Seaside… qualquer novidade você serão os primeiros a saber!

A screencast está disponível na (nova) página de screencasts aqui do blog.

PS: Este blog nunca foi específico sobre Java, o que não impede que um bom espaço seja reservado a esta tecnologia. Não abandonei o Java, pelo menos, ainda não… :D

Tags: , , , , , ,