BT

Wee: Um framework web Ruby baseado em Continuations

por Mirko Stocker , traduzido por Felipe Rodrigues em 17 Abr 2009 |

Wee (web engineering easy) é um framework web similar ao Seaside que usa continuations e deixa o desenvolvedor fazer seu trabalho de forma rápida e elegante, como seu desenvolvedor Michael Neumann, escreve. O Wee também tem componentes reutilizáveis, "que são como widgets em uma GUI. Uma vez escritos, você pode usá-los onde quiser", almejando aplicações com GUIs HTML componentizadas, ao invés das RESTfull. O release 2.0 que se aproxima também será totalmente baseado no Rack.

O post sobre Wee no blog do Neumann mostra alguns exemplos de quão mais legível o código com continuations pode ser. Com continuations, um fluxo simples e seqüencial pode ser escrito como:

 callcc page1
 callcc page2
 callcc page3

Compare isto à alternativa, escrita em continuation passing style:

 call page1 do
   call page2 do
     call page3
   end
 end

Se continuations são tão úteis, porque nem todo framework as utiliza? Uma razão pela qual não existem mais frameworks web baseados em continuations para Ruby é certamente o fato de continuations em Ruby 1.8 causarem leaks de memória. Embora os MBARI patches de Brent Roman corrigem os leaks de memória, eles ainda não são parte da séria oficial do Ruby 1.8 (eles podem ser incluídos quando a Engine Yard assumir a manutenção). Com o Ruby 1.9.1, os leaks de memória também são corrigidos e o Wee tira vantagem disso:

Para 10000 requisições (com uma thread) o Ruby 1.9.1 leva 16 segundos e requer 12 MB de memória. O mesmo exemplo com o Ruby 1.8.7 exige 329 MB de memória e leva 56 segundos.

O Wee parece ser uma boa razão para trocar para o Ruby 1.9 e também é uma alternativa interessante ao Rails, agora que o Merb irá se fundir ao Rails 3.0.

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber menssagens dessa discussão
Comentários da comunidade

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber menssagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber menssagens dessa discussão

Dê sua opinião

Conteúdo educacional

Feedback geral
Bugs
Publicidade
Editorial
InfoQ Brasil e todo o seu conteúdo: todos os direitos reservados. © 2006-2013 C4Media Inc.
Política de privacidade
BT