Dema wrote:
> Joao,
> 
> I am really curious about continuation-based web frameworks. Can you
> give us some examples in how this kind of web development can be
> different/better than what is done with a more "standard" framework
> such as Rails ?

In short, you can write web-applications as you would write normal (e.g. 
console) applications. This is not easily possible in Rails (or in Wee 
without continuations).

Consider this method:

   def checkout
     billing = getAddress("Billing Address")
     if useSeparateShippingAddress()
       shipping = getAddress("Shipping Address")
     else
       shipping = billing
     end
     payment = getPaymentInfo()
     showConfirmation(billing, shipping, payment)
   end

Here, getAddress() displays a new page where you can enter your billing 
address and returns an Address object. The same for 
useSeparateShippingAddress(), which would ask whether you want to use a 
separate shipping address and so on.

Try to write this without continuations, you end up in something like:

   def checkout
     call getAddress("Billing Address"), :gotAddress
   end

   def gotAddress(address)
     call useSeparateShippingAddress(), :sep
   end

   def sep(use_sep)
     if use_sep
       call ...
     else
       ...
     end
   end

It gets overly complex. It's (only) a little bit better if you use blocks:

   def checkout
     call getAddress("Billing Address") {|billing|
       ...
     }
   end

But note that you have to use #call instead of a regular method call. 
#call requires a component as argument.

Hope this helps a little bit in understanding the advantage of 
continuations. Continuations might be unimportant for lots of 
applications, for others they are really great.

Regards,

   Michael