[Haskell] Re: Trying On Learn Haskell Web Server

Niklas Broberg niklas.broberg at gmail.com
Mon Mar 6 18:06:30 EST 2006

Ehum, shameless plug. :)

On 3/6/06, Graham Klyne <GK at ninebynine.org> wrote:
> Cale Gibbard wrote:
> > Ah, neat, I knew about WASH, but somehow I'd missed the fact that
> > there was a server there :)
> Interesting... at a casual glance, this looks as if it could be coming close to
> being a "full stack web application framework" for Haskell, looking to occupy
> the same kind of territory as systems like Java/Servlets+JSP+the rest,
> Ruby/Rails or Python/Turbogears (the last a package I'm currently using).

Have you looked at HSP [1]? This is exactly what the HSP project aims
for, although there is quite some ways to go yet.

> I think see:
>   The web server
>   CGI process dispatching
>   Web page templating
>   Relational database access

All of these are present in HSP.

> Additional features of a full-stack web application framework that may or may
> not be present are:
> - Support for longer-running web processes (implemented in haskell, of course)

HSP has that.

> - An easy way to map incoming URIs to specific functions (hmm.. or to monadic
> values, I think)

I don't think I understand what you're after exactly, but I'm sure
it's interesting, care to explain a bit further? :-)

> - Easy mapping from Haskell data structures to underlying SQL - what would be
> called an Object-Relational Mapper (ORM) in OO languages

Some of our students are working on bringing the power of Ruby/Rails
to HSP, with emphasis on smooth database interfacing. Not sure exactly
what this entails though, I've never used Rails... :-)

> - Handling of interaction with a browser-side Javascript library for smoother
> AJAX support

This is not currently present in HSP, but they are surely on the
conceptual todo-list. There is a design for a crude JavaScript
support, but we'd certainly need more.

> - Options to run the whole thing behind Apache to leverage its security and web
> space management capabilities

Lemmih has implemented a HSP/FastCGI binding for Apache. I also know
that work is being done on building a direct HSP/Apache binding. All
work in progress though.

> I think that continuation-based web session state management, ala
> Smalltalk/Seaside, would be a very natural fit for a Haskell framework -- all
> handled by a "Web session monad", maybe.  (Or maybe I just don't know what I'm
> talking about ;)

This is by far the biggest drawback of HSP today. There is no
high-level support for continuations (other than explicitly defined
continuations at top level).

> How far are we from having such a framework for Haskell?

Depends on how many people would be willing to invest time in it.
Right now we have students at Chalmers working on a project that aims
towards such a framework, but they can only do so much in the time
they have. We would surely welcome any help we could get. :-)


(ps. Going on vacation for 2 weeks in a few hours, so I'm not likely
to respond for a while... ;-))

[1] http://www.cs.chalmers.se/~d00nibro/hsp/

More information about the Haskell mailing list