[Haskell-cafe] Why Perl is more learnable than Haskell

Brandon Michael Moore brandon at heave.ugcs.caltech.edu
Wed Apr 11 16:16:11 EDT 2007


On Wed, Apr 11, 2007 at 02:21:41PM +0100, Will Newton wrote:
> On 4/11/07, kynn <kynnjo at gmail.com> 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.
> 
> I've been trying to learn Haskell for some time also, and I've learnt
> lots of various other languages in the past. I think one of the
> biggest problems is if there is a considerable learning curve, which
> Haskell undoubtedly has, there's a nagging question in the back of
> your head while you try and get a simple task accomplished in an
> unfamiliar language - "why am I bothering with this, I could do it in
> 5 minutes in Perl/Python/Ruby/...!".
> 
> And for many simple tasks Perl is a really good fit - it's best to
> find a task that plays to Haskell's strengths so you get a bit of
> positive reinforcement while you work. I have been working with Parsec
> to do some parsing recently and I can definitely recommend it. I don't
> think I've used such a capable and easy to use parsing framework in
> any language and it's really kept me going with Haskell where I might
> have "just done it in Python" in the past.

Writing interpreters is one task where Haskell is really nice.
I suggest Unlambda, it makes a nice toy language. The syntax
is easy to work with, and continuations make the semantics
interesting enough that you can't just rely on the host language
acting the same way, like you generally can with mutable state,
sequential evaluation and so on (unless you're using something
like scheme or ml, but then you probably wouldn't have trouble
with Haskell).

Brandon


More information about the Haskell-Cafe mailing list