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:
- Do you consider Haskell and its environment of libraries ready for prime time in web app development as defined above?
- What collection of libraries would you use in such an effort?
- 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