I have returned to functional programming after more than 10 years of C, C++, C# and Java, and it feels good. The old favorite is of course Lisp, but much has happened in the field since I was active, and I thought I should check out the statically typed languages, such as Haskell. Well, it turned out to be a fairly unpleasant experience. Not because it was hard to make programs - the program structure in Scheme is fairly similar to Haskell - but because the typing system keeps getting in the way of my iterative way of programming. I want to write some code, play with it, extend it, play with it some more, and let it grow step by step. In Haskell, like in statically typed imperative languages, I seem to spend most of the time fixing type errors instread. Of course they have to be taken care off, but not when I'm prototyping!
But perhaps I found a good compromise: Lisp syntax, Haskell-like functional programming, optional type checking, lots of libraries. Qi seems to mix the best of two worlds, and so far it has been a joy to use. First prototype your application, then turn on type checking, fix the errors and you should have a pretty robust program without the Haskell straitjacket. That is my hope, time will tell if it works out in practice.
Showing posts with label Haskell. Show all posts
Showing posts with label Haskell. Show all posts
Tuesday, March 11, 2008
Subscribe to:
Posts (Atom)