Hi Ozgun,

At the moment, I would say that Happstack is your best bet on a mature option for Haskell web development. There are other systems being developed, but none have been battle-tested as much as Happstack (as far as I know). I know that patch-tag[1] was written with it, for example.

That said, there's a lot of effort right now in expanding the web development landscape for Haskell. I suggest you subscribe to the web-devel mailing list and follow the discussions there. Jeremy Shaw, for example, is currently working on a package called URLT, which promises type-safe URLs. (I know the PHP project I'm consulting on right now could *really* use this feature.)

Things are exciting right now, and you can probably have a lot of input on the direction of development. Also, if you want a more experimental framework, I'll recommend you check out Yesod[2] (which I am writing).

Michael

[1] http://patch-tag.com/
[2] http://www.yesodweb.com/code.html

On Tue, Mar 23, 2010 at 7:05 PM, Ozgun Ataman <ozataman@gmail.com> wrote:
Greetings all.

I have been for quite some time trying to assess the feasibility of using Haskell in relatively large, high volume, high availability, long-running web application projects. I have enjoyed learning and using Haskell very much for the past year and I often find myself missing various language features when reasoning about alternatives like Ruby (on Rails). If I can identify the right set of tools for the job, I would really like to take the plunge and make Haskell my standard go-to language in web applications.

Here are the couple of key questions that I wanted get your feedback on:

  1. Do you consider Haskell and its environment of libraries ready for prime time in web app development as defined above?
  2. What collection of libraries would you use in such an effort?
  3. What are the up and coming packages/technologies in Haskell-land you would watch out for?

Also, here are some core requirements that I would define for such a project:

  • Ease/speed of development in both back and front-ends, minimal boilerplate
  • Extendability and flexibility in iterative development
  • Robustness and reliability in production environment
  • High performance
  • Scalability
  • Ability to interface with new technologies in the future: Cassandra, Redis, memcached, etc.
  • Ease of implementing common/reusable features across web applications: user authentication, S3 file uploads, thumbnail/image handling, exception notifications, etc.

In terms of libraries, I can think of a few key components (as pointed out by several others before) that one would need to arrange:

  • Choice of server (happstack vs. alternatives)
  • Templating (xhtml vs. file templates vs. newer efforts like BlazeHtml)
  • Data/storage layer: HDBC vs. HaskellDB vs. others

I know this is a common topic in Haskell-Cafe, but I have failed to identify conclusive opinions from experienced Haskellers out there in previous discussions. My apologies in advance if this is a blatantly redundant post.

All the best,
Ozgun


_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe