[Haskell-cafe] Re: Maintaining the community

apfelmus apfelmus at quantentunnel.de
Mon Jul 16 10:54:52 EDT 2007


Alex Queiroz wrote:
> On 7/16/07, Malcolm Wallace <Malcolm.Wallace at cs.york.ac.uk> wrote:
>
>> OK, so I'm not genuinely suggesting that you must possess or be studying
>> for a PhD, to grok Haskell.  But I find nothing alarming about the
>> suggestion that one needs a fairly high level of intelligence, and some
>> training, in order to be able to use Haskell effectively.
> 
> What I'm saying is that almost every topic in Haskell Café evolves
> into a very high level discussion that may frighten some beginners,
> as it seems that without a PhD in programming languages and category
> theory, the language is not for you.

  read . takeWhile (not . frightening)

;)

Personally, I perceive Haskell as being easier than every other
programming language. In other words, if Haskell requires a PhD, Visual
Basic requires a Nobel Prize. How the heck do imperative programmers
produce working code and how are they able to read the resulting mess
afterwards? I just don't get it :)

To be serious, those frightening things are often very simple concepts
but will remain frightening if not explained well. My experience is that
wikis, blog posts and online tutorials can't replace a textbook-quality,
well, textbook. Unless the online materials are textbook-quality as
well, of course. Really, the best way to learn Haskell (and most other
things) is to read/buy/borrow a textbook.

This also applies to the mailing list and the "cache of answers" for
optimization volume. One example is the "hGetContents - hClose"
question. I think that most people encountering this problem won't
realize on the first try that hGetContents is the culprit. But how to
formulate a good search query then? In the end, I think that the best
way to avoid trouble with hGetContents is to be introduced to it in a
textbook chapter "IO and Files".

Regards,
apfelmus

PS: hGetContents-hClose is particularly strange since you need
operational semantics of lazy evaluation to understand it.



More information about the Haskell-Cafe mailing list