From the top comment:<p>> <i>Yoneda-crazy: I know Haskell, I know some category theory, but I am highly sceptical that teaching the Yoneda Lemma to C++ programmers is actually useful in any way.</i><p>This is infuriatingly true. Everything you do in Haskell you can understand in terms of what code gets executed where and how. This is just as true of Haskell as it is of any other high-level language.<p>Indeed, you can take an arbitrary Haskell program, and rewrite it in C with the same semantics, and all you'll learn is how GHC's runtime is implemented and how it executes your program. For a small concise program, this actually makes for a nice exercise. I don't know why, but people sometimes seem to think the runtime is "magic".
I am an unashamed OCaml fan, but I think my previously stated analogy is suitable:<p>"FP communities: like debating which brand of natural spring water to give millions of thirsty people in the desert"<p><a href="https://twitter.com/jordwalke/status/566719390272335872" rel="nofollow">https://twitter.com/jordwalke/status/566719390272335872</a><p>Note that I do genuinely appreciate the discussion, while finding the overall scene humorous.
One technical reason that makes me prefer OCaml to Haskell is Haskell's weak module system. I think there should be a good way to parameterize one module over another module (interface) and to use different instantiations of the module in the same program.
I think people do such things using type classes and typing constraints. But I found this being awkward, because the compiler needs to be able to resolve the constraints automatically and there are issues with overlapping instances and the like.<p>To quote Bob Harper:
<i>As a consequence, using type classes is, in Greg Morrisett’s term, like steering the Queen Mary: you have to get this hulking mass pointed in the right direction so that the inference mechanism resolves things the way you want it to.</i> [<a href="https://existentialtype.wordpress.com/2011/04/16/modules-matter-most" rel="nofollow">https://existentialtype.wordpress.com/2011/04/16/modules-mat...</a>] (I think this applies most of all if one is using type classes to emulate a module system. For other purposes, type classes are quite nice.)<p>Maybe Backpack will solve these issues.
[<a href="http://plv.mpi-sws.org/backpack/" rel="nofollow">http://plv.mpi-sws.org/backpack/</a>]
The OP on reddit lists several earlier "What are Haskellers' critiques of <X functionalish language>" threads.<p>Here's another recent one going in the opposite direction, like this one, but asking Clojure fans about Haskell: <a href="https://www.reddit.com/r/Clojure/comments/3h4qdk/what_are_clojurians_critiques_of_haskell/" rel="nofollow">https://www.reddit.com/r/Clojure/comments/3h4qdk/what_are_cl...</a><p>A lot of the Clojure programmers seemed to focus on things, like records, that often bug Haskellers, too.
I've toyed with Haskell before (enjoy toying with languages in my spare time). Its a nice language, that has a good community. But for some reason I could not see myself using it as one of my main goto (no pun intended) languages. Not due to any technical reason. Mostly because there is no easy introduction into it. No small projects to undertake showing what practical uses it might have. No twitter clone using SQLite (laugh all you want, this type of tutorial project helps understand how the language should be used and showcases libraries). Its just seems purely about doing math with it. But Im probably wrong. Last time I looked into it was about a year ago. I'll gladly look again if anyone can comment about it.
> When I met a Haskeller at the pub after a mini-conference and I mentioned that I didn't like Haskell he began frothing at the mouth and punching the table. When we got up to leave he refused to shake my hand.<p>This is just gold!<p>All the Haskellers I have met seem to be quite normal, helpful. Maybe this guy rubs them up the wrong way.