Multithreaded stateful software

Mark Carroll
Mon, 28 May 2001 11:11:26 -0400 (EDT)

Often I've found that quite how wonderful a programming language is isn't
clear until you've used it for a non-trivial project. So, I'm still
battling on with Haskell.

One of the projects I have coming up is a multi-threaded server that
manages many clients in performing a distributed computation using a
number of computers. So, we care about state, and control flow has some
concurrent threads and is partially event-driven.

Some possibilities come to my mind:

(a) This really isn't what Haskell was designed for, and if I try to write
this in Haskell I'll never want to touch it again.

(b) This project is quite feasible in Haskell but when it's done I'll feel
I should have just used Java or something.

(c) Haskell's monads, concurrency stuff and TCP/IP libraries are really
quite powerful and useful, and I'll be happy I picked Haskell for the

Does anyone have any thoughts? (-: I have a couple of symbolic computation
tasks too that use complex data structures, which I'm sure that Haskell
would be great for, but I want it to be more generally useful than that
because, although it's nice to always use the best tool for the job, it's
also nice not to be using too many languages in-house.

-- Mark