
Thank you guys for all the good references! To address a few concerns with this approach: 1. By stateless I don't mean to strip away any persistency. The program can access file storage or DBMS just like any ordinary I/O operation. 2. If we take it to the extreme side, the entire program including its bytecode and all runtime data are in the page itself. The server is really just a VM to execute it to the next step. Security is a concern, but with proper cryptographic measures (e.g., a digitally signed hash for integrity check) I don't think it's any less secure (or insecure?) than existing web application frameworks. 3. The extreme scenario is perhaps not very practical, but still a nice abstraction and a start point to optimize. For example, program bytecode can just be its version number, which is matched against a code repository on the server side to retrieve. 4. As for cryptic URIs, well, I don't think it's a real problem. URIs meaningful to the users are often just starting point for a task flow. URIs that refers to somewhere in the middle of a task flow are often not meant to be readable anyway. Per-login-session data can be stuffed into the cookies and remain invisible. Any sizeable chunk of data should be handled as form data anyway. So what's left are the small pieces that gets attached to URIs, they are pretty harmless if you ask me. 5. I for one do not think multi-user scenario is that much harder as I was a MMOG developer. Sure, transactional behavior should be in place to ensure correctness, but user to user interactions aren't very complex for web applications to begin with. If they are, probably web aren't the most suitable platform. I took a quick look at the WASH paper, and the iData paper, and visited Seaside's website. They are all very relevant, which at least says something about a common vision. I'll just quote it from Seaside's about page: "Unlike servlet models which require a separate handler for each page or request, Seaside models an entire user session as a continuous piece of code, with natural, linear control flow." -- Regards, Paul Liu Yale Haskell Group http://www.haskell.org/yale