Planning for a website

I'm intending to replace my current website - which uses Drupal, with a hand-written-in-Haskell version this autumn, for a number of reasons (a principal one is the lack of an upgrade path in Drupal). So I'm currently looking into the libraries available to see how much I'll have to write myself. One problem will be to get GHC ported to DragonFly BSD, but that can wait until I have a test version of the site working on Linux. The next major challange is to implement something like Drupal's Image and Image Gallery modules. That doesn't seem to be a great problem, as the exif and GD libraries seem to cover everything I'll need. So my major decision is what framework and html-generating libraries to use. There is such a wide choice on the Haskell Wiki. But I guess some are more maintained than others. For instance, WASH attracts me, with it's guarantee of valid generated pages, but it isn't clear to me that it's actively maintained (last date I can see on the web pages is 2006). HappStack is obviously currently maintained, and since it seems to have a blogging module in development, that is attractive. HASP is maintained too, I think. Has anyone written a comparison of the various libraries, or gone through the same decision process recently? -- Colin Adams Preston Lancashire

Colin Paul Adams wrote:
One problem will be to get GHC ported to DragonFly BSD, but that can wait until I have a test version of the site working on Linux.
I would love to see this. It's the biggest thing blocking me from trying Dragonfly more seriously.
WASH attracts me, with it's guarantee of valid generated pages, but it isn't clear to me that it's actively maintained (last date I can see on the web pages is 2006).
You should look into HSP. It also provides those guarantees, is maintained, and provides a nice template-style syntax which you can use inline with your Haskell code. Also check out the Formlets library.
HappStack is obviously currently maintained, and since it seems to have a blogging module in development, that is attractive.
I recommend this. - Jake

"Jake" == Jake McArthur
writes:
Jake> Colin Paul Adams wrote: >> One problem will be to get GHC ported to DragonFly BSD, but >> that can wait until I have a test version of the site working >> on Linux. Jake> I would love to see this. It's the biggest thing blocking me Jake> from trying Dragonfly more seriously. Well it will happen, as I have to use DragonFly, as my website is all about dragonflies :-) Someone has already got it working sufficiently to compile xmonad, so it should just be a matter of digging around the low-level issues. Jake> You should look into HSP. It also provides those guarantees, Jake> is maintained, and provides a nice template-style syntax Jake> which you can use inline with your Haskell code. Jake> Also check out the Formlets library. >> HappStack is obviously currently maintained, and since it seems >> to have a blogging module in development, that is attractive. Jake> I recommend this. Thanks. -- Colin Adams Preston Lancashire

I'd also give a read to this website:
http://jekor.com/article/is-haskell-a-good-choice-for-web-applications
Interesting read about a guy who actually used Haskell to create his website
from the ground up.
On Tue, Aug 18, 2009 at 9:56 AM, Colin Paul Adams
"Jake" == Jake McArthur
writes: Jake> Colin Paul Adams wrote:
One problem will be to get GHC ported to DragonFly BSD, but that can wait until I have a test version of the site working on Linux.
Jake> I would love to see this. It's the biggest thing blocking me Jake> from trying Dragonfly more seriously.
Well it will happen, as I have to use DragonFly, as my website is all about dragonflies :-)
Someone has already got it working sufficiently to compile xmonad, so it should just be a matter of digging around the low-level issues.
Jake> You should look into HSP. It also provides those guarantees, Jake> is maintained, and provides a nice template-style syntax Jake> which you can use inline with your Haskell code.
Jake> Also check out the Formlets library.
HappStack is obviously currently maintained, and since it seems to have a blogging module in development, that is attractive.
Jake> I recommend this.
Thanks. -- Colin Adams Preston Lancashire _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

I forgot to also mention this somewhat recent announcement for a pedantically type safe HTML library: http://www.haskell.org/pipermail/haskell-cafe/2009-August/064907.html - Jake

I can give a +1 vote for the Hack api and related libs. (Jinjing Wang is a one-man army.) Below hack you'll run happstack or another web-serving lib. Above hack you might run some combination of loli, maid, the hack middleware modules, hsp. The advantage is that changing the low-level server in future is a matter of changing one or two lines; and the upper-level utilities seem more usable to me than current happstack's.

Simon Michael
I can give a +1 vote for the Hack api and related libs. (Jinjing Wang is a one-man army.) Below hack you'll run happstack or another web-serving lib. Above hack you might run some combination of loli, maid, the hack middleware modules, hsp.
The advantage is that changing the low-level server in future is a matter of changing one or two lines; and the upper-level utilities seem more usable to me than current happstack's.
The problem is that `hack` isn't documented at all and that prevents it from being in wide use. At least, when I started my web app, I preferred happstack, as low-level and documented API is better than high-level API without a little bit of documentation, examples and tutorials.

On Tue, Aug 18, 2009 at 10:22 PM, Max Desyatov
Simon Michael
writes: I can give a +1 vote for the Hack api and related libs. (Jinjing Wang is a one-man army.) Below hack you'll run happstack or another web-serving lib. Above hack you might run some combination of loli, maid, the hack middleware modules, hsp.
The advantage is that changing the low-level server in future is a matter of changing one or two lines; and the upper-level utilities seem more usable to me than current happstack's.
The problem is that `hack` isn't documented at all and that prevents it from being in wide use. At least, when I started my web app, I preferred happstack, as low-level and documented API is better than high-level API without a little bit of documentation, examples and tutorials.
I don't see how you can call hack a "high-level API." It's about as low-level as it gets, kind of equivalent to the CGI protocol. I wrote up a little blog article with a hack introduction ( http://blog.snoyman.com/2009/06/28/hack-introduction/). I would also recommend checking out my hack-samples repo on github ( http://github.com/snoyberg/hack-samples/tree/master). Overall, hack is still developing, so the documentation is a little lacking. However, I at least am using it in production on a few sites ( http://eliezer.snoyman.com, http://wordify.snoyman.com). Michael

"Colin" == Colin Paul Adams
writes:
Colin> So my major decision is what framework and html-generating Colin> libraries to use. There is such a wide choice on the Haskell Colin> Wiki. But I guess some are more maintained than others. For Colin> instance, WASH attracts me, with it's guarantee of valid Colin> generated pages, but it isn't clear to me that it's actively Colin> maintained (last date I can see on the web pages is 2006). Have you thought about Turbinado (http://turbinado.org) ? Sincerely, Gour -- Gour | Hlapičina, Croatia | GPG key: F96FF5F6 ---------------------------------------------------------------------------

"Gour" == Gour
writes:
"Colin" == Colin Paul Adams
writes: Colin> So my major decision is what framework and html-generating Colin> libraries to use. There is such a wide choice on the Colin> Haskell Wiki. But I guess some are more maintained than Colin> others. For instance, WASH attracts me, with it's guarantee Colin> of valid generated pages, but it isn't clear to me that Colin> it's actively maintained (last date I can see on the web Colin> pages is 2006).
Gour> Have you thought about Turbinado (http://turbinado.org) ? I didn't like it when I clicked on the link that says: Learn about Turbinado here and got a this page doesn't exist response. Then I looked at the archticeture link, and didn't like the idea of having to generate Haskell data types from relational tables (if i understood it right). I'd much rather be using happstack's macid stuff, especially as I will have only very low usage, so i shouldn't have any scalability problems. -- Colin Adams Preston Lancashire

Excerpts from Colin Paul Adams's message of Wed Aug 19 17:13:14 +0200 2009:
I'd much rather be using happstack's macid stuff, especially as I will have only very low usage, so i shouldn't have any scalability problems. See also this current thread: http://groups.google.com/group/happs/browse_thread/thread/961ab7cc28f1f91f
Marc Weber

"Colin" == Colin Paul Adams
writes: Colin> I'd much rather be using happstack's macid stuff, especially as I Colin> will have only very low usage, so i shouldn't have any Colin> scalability problems.
Well, I do not have enough money to pay for Happs resources... Right, Turbinado is not perfect - lack of docs is one area and it is not clear if it's still developed. Otoh, although I'll use Haskell for my desktop app, atm, I'm learning Django to do the job... Sincerely, Gour -- Gour | Hlapičina, Croatia | GPG key: F96FF5F6 ---------------------------------------------------------------------------
participants (8)
-
Colin Paul Adams
-
Gour
-
Jake McArthur
-
Marc Weber
-
Max Desyatov
-
Michael Snoyman
-
Simon Michael
-
Tim Wawrzynczak