On Fri, Sep 16, 2005 at 05:40:04PM +0100, Glynn Clements wrote:
Every other language (including Haskell) tends to have the problem that eventually you will encounter a situation where the language's own worldview gets in the way.
Are you sure that lisp's worldview never gets in the way?
Or, to put it another way: if Haskell is so flexible, why do we need Template Haskell?
It's nice to have Template Haskell, but saying that we need it is a bit of an overstatement. In the GHC Survey 2005 only 9% of people said it's essential. Well, OK, I was one of them, but I think you know what I mean.
I can't imagine a "Template Lisp"; it would just be Lisp.
The power of lisp macros is often overrated. I remember a long discussion crossposted on comp.lang.lisp an comp.lang.functional. The lisp advocates gave examples for how macros allow to do things supposedly unavailable in other languages. Surprisingly, most of these things were equally easy to do with higher-order functions and closures in Haskell. I am sure that lisp gurus can achieve great things with macros, but I'm not sure they are the best tool for software engineering problems. I think they can make the code more difficult to understand, make the semantics less uniform (despite the uniform syntax), and can become an abused ugly hack. Don't get me wrong - I still think that lisp is one of the best programming languages around and from time to time I am trying to learn a bit of it. One of the things that puts me off is the attitude of its community - it seems to be very close minded. Best regards Tomasz