[Haskell-cafe] Why Haskell is beautiful to the novice
jerzy.karczmarczuk at unicaen.fr
Sat Aug 29 23:32:04 UTC 2015
Le 29/08/2015 20:59, mantkiew at gsd.uwaterloo.ca a écrit :
> it's clear that Haskell is optimized for functional style and Python for imperative style, and things in their respective opposite styles look clumsy.
I am not entirely sure what is the real meaning of "optimized for" in
your phrasing, but what is clear is that Python 'optimizes' without
being asked for, e.g. when you use generators in order to cascade some
sequence processing, as in the "sum" example, nothing wrong happens,
while lazy lists reserve several nasty surprises. -O2 optimization, or
explicit strictness annotations (and BangPatterns) are there, and may
save our lives, but "what is clear" is that teaching Haskell as a
practical language usable for large data, is quite non-trivial, and its
beauty for novices evaporates quite fast.
[This 'sum' example under GHCi will be problematic anyway].
I taught Haskell so long, that I became reckless, and my students got a
rather tiresome project based on Haskell OpenGL. It was a massacre, a
general unhappiness... Two years later my dept. decided to abandon
advanced Haskell (with monads of all sorts), and left only the 2nd year
introduction to functional programming, its style and algorithmics. I
couldn't defend the "professional Haskell" too hard, the gap between the
elementary FP, and the "true stuff" became too big in the context of our
Just my three cents...
Anyway this threads degenerates a bit, and begins to contain statements
I find dubious, or too restricted, e.g.,
> A beginning student doesn't need to learn OOP in
> any kind of depth.
I suspect that the author of this phrase was not yet born when I began
to teach programming... Now, I would never dare to declare what a
beginning student *really needs*. Programming is a kind of art, a
fragment of culture, a vision of the world, and the Pursuit of Happiness
is different for different people. Linguists (or historians, etc.) may
*begin* with logic/relational programming, biologists with objects, and
mathematically-oriented yougsters, with FP.
More information about the Haskell-Cafe