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.