
On 7/17/07, Thomas Conway
On 7/18/07, Hugh Perkins
wrote: Am I the only person who finds it interesting/worrying that there are few to no people in the group who are ex-C# programmers. I mean, you could argue that C# programmers are simply too stupid to do Haskell, but ... you know, there is another explanation ;-)
I wouldn't say too stupid, but it may be a cultural thing. People working in C++ are more likely to be doing what I would call "technical" programming, and correspondingly more likely to be interested in Haskell, and to appreciate what it has to offer from painful personal experience. From what I know of the marketplace, people working in C# are more likely to be doing client/integration work where technical finesse is less important, and are therefore less likely to see the point.
Quite. Any C++ developer who has spent any time with Boost knows and has experienced the horror of Boost::Lambda. C++ template metaprogramming *is* a pattern-matching pure functional language with type classes (template classes), but it's syntatically ugly and far too minimal. The Boost community are doing a valiant job of trying to add higher order capabilities to C++, but the langauge is just not set up for it. Maybe when C++0x matures, and C++ has concepts, variadic template parameters etc., things will be more civilized. Or we can use Haskell, which has them now. FWIW, C# is slowly gaining higher order concepts too. C# 2.0: Ad hoc polymorphism, closures (anonymous delegates). C# 3.0: Lambda expressions, higher-order functions over collections, LINQ, etc. Martin