[web-devel] On the state of Haskell web frameworks
peteg42 at gmail.com
Mon Mar 15 19:15:55 EDT 2010
On Tue, Mar 16, 2010 at 9:38 AM, Gregory Collins
<greg at gregorycollins.net> wrote:
> We need pluggable *applications* (blog, CMS, RSS feed generation,
> administrative panels, forum, wiki, caching, user management, etc) that
> understand how to talk to each other --- expecting "plug and play"
> compatibility between frameworks on this level, when there's no
> consensus on the *primitives*, is a pipe dream. The first framework that
> cracks this particular nut, in a way that makes it easy and pleasurable
> for people to build web apps that perform, is going to gain a lot of
> traction. Code talks.
Several years ago (mid-2007) I was looking for something like this. I
found Bjorn Bringert's HOPE:
(err, that seems broken now.) In essence, it is a framework built from
a bunch of standard Haskell libs, for better or worse. It uses
CGI/FCGI to talk to a web server.
I dropped the HaskellDB dependency (roughly because it was too much
effort to get it to scale up to thousands of items - I really needed
the database to help with pagination), added multi-lingual support,
accessibility, a primitive forum, web polls, google services, etc. for
This is not a high-traffic site - perhaps up to a thousand hits a day.
For this reason I am sure there are many memory leaks, etc. in my
version of HOPE.
Why is it not on Hackage? Well, it only compiles with 6.8.x due to the
capricious changes to the exception libraries in 6.10.x, and moreover
I adjusted some of the base libraries (xhtml, cgi, HSQL, etc) in ways
that I doubt everyone would like.
(Am I the only person who forks almost every library they use?)
So if you're in the market for a CMS-alike and don't want to reinvent
the wheel, HOPE might be a good starting point. Bjorn solved a lot of
problems - modularity, extensibility, packaging with Cabal, routing
URLs, MVC, user management with role-based capabilities, etc. - in
highly pragmatic and occasionally beautiful ways. :-)
The darcs repos are here:
BTW if you're in this business please take Unicode seriously! Haskell
libraries interfacing with C were terrible on this front when I was
doing this work.
More information about the web-devel