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
).
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:
-
-
renderContentOn: html
-
html heading: ‘Hello, world’ level: 1.
-
html paragraph: [html text: ‘this is a paragraph!’].
-
Na screencast criei um componente HelloWorldComponent e que cuja renderização é parecida com a listagem acima. A saída deste código será:
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.
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… ![]()


10 de maio de 2007 às 6:37 am
Acredito que os programadores são, também, responsáveis pela estrutura do documento. Os designers se focam, então, naquilo que diz respeito a eles: CSS. Acho que li isso em algum lugar….
Thiago
10 de maio de 2007 às 12:21 pm
É verdade… acabei de encontrar este post, cujos comentários tratam, em parte, dessa questão.
Valeu!
11 de maio de 2007 às 9:54 am
Um outro artigo, de Bruce Tate, também comenta sobre isso: Crossing borders: Web development strategies in dynamically typed languages.
6 de junho de 2007 às 2:43 pm
Olá,
gostei que o pessoal este experimentado com isto e divulgando o material.
Para comprender o html do Seaside tem que se pensar nele como uma consequencia e nao como a causa (da pagina). Voce no ambiente (smalltalk) cria componentes que eles sabem como se deven “pintar” em html. Tambem pode ser pensado como se fosse um tipo de serializaçao tal que contem instruçoes que os browsers sabem interpretar e mostrar visualmente.
Assim voce nunca mexe com template de nada porque voce tem algo melhor do que um template. Lembrar que o template e uma soluçao precaria ao problema de que o html seja um subproduto emergente (non human friendly by the way), uma consequencia (de aquilo que voce quer fazer) e nao a causa.
Assim entao no Seaside voce trabalha o tempo todo com “causas” que conseguem dar (com simplicidade e elegancia) suas consequencia de html, o seja a sua correspondente renderizaçao em html que o browser pintara nas telas.
As “causas” sao os componentes (objetos, o que mais poderia ser?
e subcomponentes da aplicaçao Seaside que voce esta fazendo.
Emquanto a designers e developers ao principio os designers podem customizar tudo o layout a partir do CSS so que na pratica algumas coisas tem que ser emendadas porque o CSS lastimavelmente por ser muito novo (a pesar de o conceito ser extremamente antigo básico e lógico) ainda nao da certo em tudos os browsers (como CCS tables por exemplo).
Mais em geral é valido pensar na separaçao do desenvolvimento da arte usando CSS. O(s) desenvolvedor(es) deven coordinar com os designers.
cheers !
Sebastian Sastre
6 de junho de 2007 às 2:54 pm
Gostei do raciocínio! Realmente, o HTML não é o motivo. Ele é somente uma forma (para a qual não se tem alternativas) de se chegar ao resultado desejado.
A propósito, você é de onde?