Haskell for non-Haskell's sake

D. Tweed tweed@compsci.bristol.ac.uk
Sat, 30 Aug 2003 14:37:38 +0100 (BST)


On Sat, 30 Aug 2003, Alastair Reid wrote:

> 
> > If you use Haskell for a purpose *other than* one of those listed below,
> > I'd love to hear.  I don't need a long report, anything from a simple "I
> > do" to a paragraph would be fine, and if you want to remain anonymous
> > that's fine, too.
[snip]
> - FVision (Visual tracking)
> 
>   Given a bunch of simple image tracking primitives (written in C++ and
>   assembly, part of the larger XVision system), build complex feedback
>   loops, hierarchies, etc. to create more robust, flexible, sophisticated
>   tracking systems.
>   http://www.reid-consulting-uk.ltd.uk/alastair/publications/padl01/index.html
> 
>   Uses Haskell's ability to 'embed' domiain specific languages inside it.
> 
>   [One could argue that this project was just  'Haskell for Haskell's sake'
>    but it's worth pointing out that it lead to a complete redesign of XVision
>    along the lines I had developed in the Haskell version.]

I do research in computer vision/image processing and I've also used
Haskell quite a lot for doing prototyping of algorithms. I'm doing sort of
the opposite thing to Alastair: he's taking established low-level
image analysis techniques (written in C/C++) and combining them in
more effective ways using Haskell as a language for doing higher
level processing. (Apologies if this is an incorrect
understanding.) I work on more effective low-level image processing
algorithms with a higher-level stuff that's simple and stable enough that
coding it in C++ doesn't cause a problem. I do extensive prototyping using
simple Haskell implementations of ideas; once I'm reasonably happy that
the idea has a chance of working I then convert it to C++. I have to
convert to C++ for `real work' because (a) Haskell is too slow for most
of the low-level stuff, particularly `semi real-time' image processing
and (b) no-one else here knows Haskell so if I want to be able to share
code on common projects I need either C or C++. I want eventually to be
able to plug in Haskell code prototypes into the overall C++ structure to
be able to do more testing before moving to C++, but that awaits me having
enough free time to study the Haskell FFI, etc...

I'm very impressed with the FVision stuff and I've contrasted what I do
with the it just to show Haskell is being used for BOTH high and low-level
areas.

I also use Haskell for some `scripting-stuff level tasks' like
autogenerating makefiles and processing log files. I write both Perl and
Python code where they seems best, so I can reasonably say that in those
cases where I use Haskell it's because I think it's easier for me than
those languages.

___cheers,_dave_________________________________________________________
www.cs.bris.ac.uk/~tweed/  |  `It's no good going home to practise
email:tweed@cs.bris.ac.uk  |   a Special Outdoor Song which Has To Be
work tel:(0117) 954-5250   |   Sung In The Snow' -- Winnie the Pooh