Building commercial Haskell applications
About a month ago, one of our clients called. They needed to have a payment service, and they wanted it tomorrow. Or next week. Basically, they had two big requirements: it had to be done safe and soon. We were quite busy that week: one of us was on a holiday and the other had to give a 2-hour guest-lecture at Utrecht University.
For us, this was an ideal excuse to do it in Haskell. This enabled us to build the system very fast while still making sure it was correct. We did a lot of the stuff (forms, database handling, displaying) using datatype-generic programming, which helped us to keep the the application-specific code to a minimum. This saved a lot of time, so we were done in little more than a week.
Also, we were able to use a lot of packages on hackage, most notably: happstack-server, download-curl, formlets, HDBC and hsemail. We had to write the integration with the payment system (the Dutch iDeal) ourselves, but this was quite easy thanks to the good API from Mollie and the download-curl package. Without the big community behind Haskell it wouldn’t have been possible, and one of our ways of saying “thank you” was by sponsoring and helping organize the 5th Hackathon.
It seems like a good time to shake up some things: during recession, people expect the same quality of software for less money, and by using the right tools it’s possible. We now have two commercial websites running on Haskell (and a couple of pet projects), and so far it has worked out very well. It saved us a lot of time and bugs, and we’re planning to do a lot more of Haskell apps.
Bonus:
Martijn van Steenbergen took a cool picture of us hacking away at the Hackathon. Post your caption in the comments: we’ll send 10 stickers to the one we like the most!

About this entry
You’re currently reading “Building commercial Haskell applications,” an entry on Tupil Code Blog
- Published:
- Monday, April 27th, 2009 at 10:31
- Author:
- Chris Eidhof
- Category:
- Code
17 Comments
Jump to comment form | comments rss | trackback uri