Perspectives on learning and using Haskell

Derek Elkins ddarius at hotpop.com
Tue Dec 23 17:44:42 EST 2003


On Tue, 23 Dec 2003 17:26:20 +0000
Graham Klyne <gk at ninebynine.org> wrote:

(moved to Haskell-Cafe as this reply might generate several more)

> I've spent part of the past few months learning Haskell and developing
> a moderately sized application.  I came to this from a long background
> (20 years or so) of "conventional" programming in a variety of
> languages (from Fortran and Algol W to Java and Python).  For me,
> learning Haskell has been one of the steepest learning curves of any
> new language that I have ever learned.  Before this project, I was
> aware of some aspects of functional programming, but had never
> previously done any "in anger" (i.e. for real).

Well, the obvious question is: after climbing partway up that curve,
what do you think of the view?  Was it worth learning?  Is it worth
continuing to use?  Does the code seem 'better' than what you might
produce in other languages you've used?
 
> Throughout this period, I've been accumulating some notes about some
> things that I found challenging along the way.  The notes are not
> organized in any way, and they're certainly not complete.  I've
> published them on my web site [1] in case the perspective might be
> useful to any "old hands" here.
> 
> [1] http://www.ninebynine.org/Software/Learning-Haskell-Notes.html

When I saw this page earlier, I was thinking about suggesting to you to
add it and any new thoughts to the wiki so that it's more readily
accessible to other Haskell newbies and can be annotated with pointers
to resources and comments; kind of like an annotated unidirectional
version of "A Newbie's on-going tutorial" on the Squeak wiki
(http://minnow.cc.gatech.edu/squeak/1928). 

> Also on the topic of perspectives:
> 
> In recent conversation with a colleague, he mentioned to me that the
> term "functional programming" has an image problem.  He suggested that
> the term conveys an impression of an approach that is staid,
> non-progressive or lacking novelty, and is prone to elicit a response
> of "been there, done that" from programmers who don't realize the full
> significance of the term "functional".  I've also noticed that when I
> talk about "functional programming", some people tend to think I'm
> talking about using techniques like functions in C or Pascal (which is
> course is very desirable, but old hat and not worthy of great
> excitement).

Yes.  People often use the term 'procedural' to describe the C style
break down of a problem.  Of course, some people use procedural to refer
to functional and others functional to refer to procedural.  Then, of
course, there are also dynamic typers who equate static typing with
C/Pascal.  On the OO side, there are the people who equate OO with
C++/Java much to the chagrin of Smalltalkers and CLOS users.  At any
rate, functional programming is a pretty well established term so there
isn't much Haskell can do about it.  Perhaps throwing in 'higher-order'
will help, and certainly laziness/purity can't be said to be lacking
novelty.



More information about the Haskell-Cafe mailing list