[Haskell-cafe] On the verge of ... giving up! [OT]

Emre Sahin iesahin at bilkent.edu.tr
Sun Oct 14 19:29:32 EDT 2007


>>>>> "jerzy" == jerzy karczmarczuk <jerzy.karczmarczuk at info.unicaen.fr> writes:

    [...]

    jerzy> But, when J. Vimal "threateneds us" to throw away Haskell,
    jerzy> complained about monads, and most people confirmed that the
    jerzy> underlying theory is difficult, ugly, and useless, I began
    jerzy> to read those postings with attention, since I disagree
    jerzy> with spreading such atmosphere. And A.C. additionally wrote
    jerzy> that all this theory has nothing to do with Haskell, and
    jerzy> submitted three more postings, one more dubious than the
    jerzy> other, I found that a warning seems suitable, not for him,
    jerzy> but for his readers!


I'm an (almost) complete newbie to FP and for a beginner I don't see some
"right" in myself to criticize "theory" being hard. I'm a CS guy
without any background in Category Theory and related ideas, but when
I see something elegant, I think I recognize it, and monads seem to be
much elegant way of doing things than "usual" I/O. (And because of
this elegance I couldn't persuade myself to learn OCam'l etc. first)

Currently I can't say I understand monads, but as Von Neumann put it,
"Young man, in mathematics you don't understand things. You just get
used to them." ;)


    jerzy> Mathematics is beautiful and useful. The commutativity of
    jerzy> some categorical diagrams can be translated into the
    jerzy> optimization of Haskell constructs, say, showing that there
    jerzy> is a canonical isomorphism between

    jerzy> (map f) . (map g) and: map (f . g)

    jerzy> etc. So, why dump the theory away, which suggests
    jerzy> additionally that the conceptors of Haskell are
    jerzy> irresponsible dreamers, living on some crystal
    jerzy> mountain?... The language is not trivial to learn, that's
    jerzy> it. If somebody feels discouraged, my own students often
    jerzy> are, then the recipe is simple: ask CONCRETE questions, get
    jerzy> CONCRETE answer. THEN generalize.

I asked Paul Hudak a few days ago about an exercise in his Haskell SOE
book and I got more than I expected. (Prior to that, I asked in
#haskell and also got more than I expected, though not understood all
of them ;))


    jerzy> But if some people offer general answers, they must be
    jerzy> based on a real competence and experience, otherwise they
    jerzy> easily become harmful.

Being friendly is one thing, but being sensitive about the information
is much more valuable IMO. I thank you for deciding to post this "disclaimer"
instead of overlooking, which is perhaps the easier way.

    jerzy> ==============

    jerzy> "David48" points out that if a list returns the reader to
    jerzy> the docs which he has already seen, and which is poor, then
    jerzy> it doesn't work at all. OK, then, once more, don't say "I
    jerzy> cannot understand monads", or rewriting, or whatever, but
    jerzy> say plainly: "I read XYZ in the ABC tutorial, and the
    jerzy> example PQR remains too difficult." And say WHAT doesn't
    jerzy> work.

    jerzy> Go ahead, criticize *concrete* documentation, don't say
    jerzy> that docs are lousy!  Almost all Haskell documentation has
    jerzy> been written by people who *beg* constantly for comments,
    jerzy> for criticism; let's help them instead of shouting at them.

    jerzy> Of course, the repeated, ever and ever again questions mean
    jerzy> that one day it will be absolutely necessary to make a true
    jerzy> FABQ, proposed a few times, and still in statu nascendi...


I'm 27 years old and somehow programming for ~12 years in almost all
major imperative languages. (I have some Scheme & Lisp experience
also.) As another poster mentioned, this language gave me long
forgotten excitement of programming again. Though I feel myself too
lazy to cope with problems (and obstacles in learning and changing
mindset) sometimes, and I usually don't understand topics in this
mailing list most of the time, I don't attribute these to difficulty
of the language. This is my laziness, not Haskell's.

If I would like to program in "more understandable" ways, I know there
are lots and lots of other languages that I can use, but trying to
come up with a solution and seeing how succint it can be amazes me in
this language and I don't know if I can be a successful Haskell
programmer (and write those haikus you write here and there), but at
least I'll try to be and if I can't, this will be my laziness, not
Haskell's.

Thanks and best regards, 

E.






More information about the Haskell-Cafe mailing list