Haskell for non-Haskell's sake

Tomasz Zielonka t.zielonka@students.mimuw.edu.pl
Sat, 6 Sep 2003 13:07:11 +0200


On Fri, Aug 29, 2003 at 05:39:09PM -0700, Hal Daume III wrote:
> If you use Haskell for a purpose *other than* one of those listed below,
> I'd love to hear.

In my job (website traffic measurement) the official programming language is
C++ (also PHP and Java, but I don't touch these) and AFAIK I am the only one
that knows and likes Haskell here. Because of this I can use Haskell only for
programs which are not critical for the company.

I would rather use Haskell for a couple of applications I have done in
C++, but there are applications with performance requirements beyond
GHC's abilities, I'm afraid (for example imagine a database with more
than 10,000,000,000 records, about 400,000,000 updates/inserts every
day, many statistics which have to be recomputed after updates, and this
has to work on an off-the-shelf PC :).

So far I have used Haskell for such not-for-haskell's-sake tasks:

- various networking applications

  For example, I created a pure (concurrent) haskell dns resolver
  library which I find very efficient for resolving tons of IP
  addresses. I parse DNS messages declaratively using Parsec :). It's a
  bit incomplete now, but someday I will fix this. As I have written it
  in my free time, I can release it as open source.

- creating prototype web interfaces based on WASH for presenting
  statistics computed by other programs

- text/data processing, like converting files from one format to another, or
  performing transformations of simple databases in text files

- general scripting (things I would do in Perl two years ago)

- implementing algorithms which would be tiresome to do in C++ and/or don't
  have to be (crashing :) so fast

- making prototypes of algoritms, ideas, etc.

- various calculations in GHCi

- etc.

It's about 20 KLOC of code in total (without the throw-away ones).

Best regards,
Tom

-- 
.signature: Too many levels of symbolic links