
On Wed, Apr 11, 2007 at 05:55:08AM -0700, kynn wrote:
Perl is a large, ugly, messy language filled with quirks and eccentricities, while Haskell is an extremely elegant language whose design is guided by a few overriding ideas. (Or so I'm told.)
Based on this one would think that it would be much easier to learn Haskell than to learn Perl, but my experience is exactly the opposite.
Perhaps it's just that being more elegant doesn't make it easier to learn. There are almost no overriding ideas in SKI combinator calculus, but I wouldn't say it's a nice and easy programming language (Well, OK, I didn't try to master it, so maybe I'm wrong). The biggest problem with Haskell is that not only you can do things differently (than in other languages) - you have to! Also, some tasks are only easy when you know some advanced programming techniques, like parsing with parser combinators. There is also the problem that fundamental concepts are quite entangled, and it's difficult to choose the starting point when learning or teaching. The language also seems a bit schizophrenic. For example, you can say that it has side-effects and that it has no side-effects, and both statements are true in some sense (expression evaluation has no side-effects but there are features like IO, mutable arrays, etc. - it's quite difficult to explain to beginners why there is no contradiction, or where is the trick, in other words). Actually, I don't know which is the biggest problem... and there are more of them. Best regards Tomasz