On 30/11/2006, at 3:36 PM, Ashley Yakeley wrote:

Malcolm Wallace wrote:
Unfortunately, I suspect that teaching is _the_ major use-case for
defaulting.  Imagine, day one, lesson one, a student types
    Prelude> 1+2
into Hugs, and gets the response
    Unresolved overloading: Num a
Huh?  This is lesson one, and you already need to tell students about
type classes and overloading, before you have even covered simple
expressions fully? I am certain this is the reason why defaulting was
introduced.

I propose we abandon "teaching" arguments for design choices entirely. There are two reasons for this. Firstly, they don't apply to the majority of Haskell users, and secondly, they almost always misapprehend the language-learning process.

To give you a vague example, when I was learning ML, what appealed to me was the sense of cleanliness and purity about the language. Any apparent weirdness was fine, as long as I could discover the elegant reason behind it. This right up until finding out about references, which bothered me so much that I dropped it and learnt Haskell instead.

That something might confuse the beginning user should count for nothing if it does not annoy the more experienced user.

Whilst I agree with some of your sentiment, I think that this argument is too extreme.

On a general level, for a language with a relatively small community, Haskell has been rather successful as a vehicle for education. I don't think we should underestimate the impact that this exposure has had on the language. Teachers of Haskell, and students of Haskell, are important members of the
community, and their opinions are not irrelevent.

Having said that, I agree that we should be careful with arguments based on the grounds of ease of teaching, especially so when we don't have good data to back them up. In many cases, I think that we should fix the compilers first, before we try to fix the language, in particular the error messages
generated by them.

You can't please all of the people all of the time, so there will naturally be situations where different user groups have competing interests. If a design decision would impinge on both the experienced users and the beginners, then, of course, a value judgement has to be made.

I see no reason to rule out the needs of teaching altogether, especially in cases where there
is no real conflict with other user groups.

Cheers,
Bernie.
_______________________________________________
Haskell-prime mailing list
Haskell-prime@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-prime

Reply via email to