[Haskell-cafe] Re: What is the maturity of Haskell Web Frameworks

Paul L ninegua at gmail.com
Thu Jun 5 22:40:51 EDT 2008

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

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."

Paul Liu

Yale Haskell Group

More information about the Haskell-Cafe mailing list