Perhaps it would be prudent to point to some of the things that are wrong in this parody. You know, just to make sure that we're all on the same page?
- No currying.
It was named after Haskell Curry! Curry and Uncurry are among the most basic functions.. It's there. It's there in every functional language that I can think of.
- Dynamic types.
Just… no. Haskell has a fucking reputation for static typing. I feel almost ashamed to type it out explicitly.
- You don't need type declarations.
Just like you don't need documentation, right? Even if the compiler can work without them, most humans can't do that.
- For mathematicians.
Wouldn't they rather prefer either upgrading to Idris, use CoCoA, Maxima or just plain Mathematica? That stereotype shouldn't apply since the days of Hugs98 being all the rage. "Oh, but there are Monoids and semi-groups!" - grow up! You don't have to have a maths PhD to work on stuff that's introduced during the first semester of CS or maths level abstract algebra course. There are both jargon and quirks. This argument applies to every language, not just the programming ones. Main problem with Haskell is that it uses purely mathematical terms in places. If you were to change 'Applicative' to 'Zbax' and 'Monad' to 'Thing-existence separateiffier' people would still moan about weird lingo. Only now it would actually be justified.
Honestly, for me, it's more intuitive than Java's object model. At least the compiler will tell me that there are other problems than the scope or class permissions.
- We have to define everything from the ground up.
You can, but shouldn't. That's like saying that you should define your own malloc in every C program! It's not even about the language, but programmer's convenience at this point.
- This complex code is good because it's unnecessarily complex. Pay me the smart-people wage!
Here's a solution to the N-Queens problem. Six lines, no imports needed. Problem perfectly solvable using only the Prelude.
- Devac lacks the sense of humour.
I am fully capable of the laughter. I'll have you know that my FRM (Funnies Recognition Module) operates within nominal capacity. I just had to write that for reasons given above.