21

As a developer who is new to Haskell, I am looking for open-source Haskell applications that I could study and learn from.

In particular, I am looking for open-source projects that show:

  • How to write network servers that scale well, with low response latencies and high throughput.
    The Warp webserver would perhaps be an example here, are there any others?
  • Applications showing techniques for keeping memory use low, or showing examples of GC-friendly design.
  • Projects that showcase techniques for testing Haskell applications (related question: haskell-testing-workflow).
  • Programs designed for running well on multi-core systems.

What open-source projects would you recommend as exemplars of modern Haskell programming?

Related SO question: good-haskell-source-to-read-and-learn-from.

Community
  • 1
  • 1
jkoshy
  • 1,793
  • 15
  • 23
  • And second this question AND re-ask it for Common Lisp. I need some *real* experience, not just short toy problems. – drysdam Jan 02 '12 at 20:29

2 Answers2

8

As far as network servers go, I suggest reading Mighttpd – a High Performance Web Server in Haskell by Kazu Yamamoto, from issue 19 of the Monad.Reader; it uses Warp under the hood and can achieve speeds exceeding that of nginx(!). That same issue also has an article about Haskell-MPI, so it's relevant for multi-core programming too.

The xmonad source code is frequently recommended (e.g. in the related question you linked), as it is a widely-used, stable piece of "real-world" software with an unusual amount of care and attention paid to good Haskell design.

ehird
  • 40,602
  • 3
  • 180
  • 182
4

I learned a lot from hacking a bit on hledger.

Trygve Laugstøl
  • 7,440
  • 2
  • 36
  • 40