BT

Disseminando conhecimento e inovação em desenvolvimento de software corporativo.

Contribuir

Tópicos

Escolha a região

Início Notícias Wee: Um framework web Ruby baseado em Continuations

Wee: Um framework web Ruby baseado em Continuations

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.

Avalie esse artigo

Relevância
Estilo/Redação

Conteúdo educacional

BT