while( updateBillingInfo() != 'done' ){
displayUpdateBillingInfo();
}
renderCheckoutScreen();
....
The point was that a method call that might present output to a user or read in a value could be an entire http render/response cycle. The 'updateBillingInfo()' method above could include arbitrary web interaction with the user. What was allowing all this was the fact that the framework was using continuations. So that when the user was finished updating the billing info the stack of the above code could be revived and resumed.I thought it was so cool to be able to structure complex web interaction with that kind of procedural code. The closest thing I've seen at work is srping webflow but that is nowhere near as cool.
For years we have been able to inject a password prompt to a user when they request a secured resource. After the user logs in they can go to the secured page. What about something like a multipage color chooser? so that at any point in a web interaction the user can go into the color chooser sequence of screens and have the end result returned to wherever they were when it kicked off? And being able to stack these re-usable flows arbitrarily deep?
What I have seen in production is some kind of hack like a 'returnTo' http parameter that lets the other flow know where to send the user when they finish that part of the interaction. In some cases you see people attempt 2 levels by passing the parent and grandparent as a string or something like that. The thing is that there is no way I would dive into smalltalk to get features like this. For better or worse I am tied to Java on the server side.