Names in Haskell (Was: [Haskell-cafe] Comments from OCaml Hacker Brian Hurt)

What I don't understand is why Monoid and Monad are objectionable, while Hash, Vector, Boolean, and Integer are (presumably) not objectionable. They all appear equally technical to me. -- Russell O'Connor http://r6.ca/ ``All talk about `theft,''' the general counsel of the American Graphophone Company wrote, ``is the merest claptrap, for there exists no property in ideas musical, literary or artistic, except as defined by statute.''

On Thu, 2009-01-15 at 17:16 -0500, roconnor@theorem.ca wrote:
What I don't understand is why Monoid and Monad are objectionable, while Hash, Vector, Boolean, and Integer are (presumably) not objectionable. They all appear equally technical to me.
It's simply that other languages' libraries already have those terms in them. So there is nothing new to learn. That seems to be the crux of the argument. Duncan

What I don't understand is why Monoid and Monad are objectionable, while Hash, Vector, Boolean, and Integer are (presumably) not objectionable. They all appear equally technical to me.
It's simply that other languages' libraries already have those terms in them. So there is nothing new to learn.
1. Imagine learning English. Easy, everyone here has been there, done that. 2. Imagine learning English as a second language. Slightly different: a. you can use an English-native language dictionary. won't get you all the way, but is fairly essential for beginners. b. you can use an English-English dictionary. once you know enough of the language to "bootstrap", this is preferred over (a), as it helps to get familiar with the language, and to improve your autonomy every time you need to look something up (instead of clinging to the crutches of translation). c. you can use an English-GOB (General Ontology Base) dictionary. languages are just syntax. understand the principles behind them! can be really useful, but probably not when you're still learning your second language, knowing neither English nor GOB. once you've seen at least two examples of everything, and know enough to read about generalizations, the situation changes. Does this help?-) Claus

On Thu, 15 Jan 2009 17:16:04 -0500 (EST), you wrote:
What I don't understand is why Monoid and Monad are objectionable, while Hash, Vector, Boolean, and Integer are (presumably) not objectionable. They all appear equally technical to me.
I think the name issue is a red herring. The real issue is that, after being confronted by a concept with an unfamiliar name, it can be very difficult to figure out the nature of the concept. That is, it's not the name itself that's the problem, it's the fact that trying to understand what it means often leads you on an interminable Alice-in-Wonderland-esque journey that never seems to get anywhere. Steve Schafer Fenestra Technologies Corp. http://www.fenestra.com/

On Thu, 2009-01-15 at 18:50 -0500, Steve Schafer wrote:
On Thu, 15 Jan 2009 17:16:04 -0500 (EST), you wrote:
What I don't understand is why Monoid and Monad are objectionable, while Hash, Vector, Boolean, and Integer are (presumably) not objectionable. They all appear equally technical to me.
I think the name issue is a red herring. The real issue is that, after being confronted by a concept with an unfamiliar name, it can be very difficult to figure out the nature of the concept. That is, it's not the name itself that's the problem, it's the fact that trying to understand what it means often leads you on an interminable Alice-in-Wonderland-esque journey that never seems to get anywhere.
I agree with interminable but certainly you go somewhere. A lot of people like Haskell for this property. "How do you know that a monoid action is isomorphic to a monoid homomorphism into an endomorphism monoid?" "Well, I was trying to append two lists in Haskell..." For an actual interminable Alice-in-Wonderland-esque journey that never seems to get anywhere, try to write C# programs that inter-operate with Microsoft Office.

2009/1/16 Derek Elkins
I think the name issue is a red herring. The real issue is that, after being confronted by a concept with an unfamiliar name, it can be very difficult to figure out the nature of the concept. That is, it's not the name itself that's the problem, it's the fact that trying to understand what it means often leads you on an interminable Alice-in-Wonderland-esque journey that never seems to get anywhere.
I agree with interminable but certainly you go somewhere. A lot of people like Haskell for this property.
I suspect the complaint people have is that *where* you go, is into mathematics - and your interest may well be in computing, so that while the diversion is enlightening, it's not of much practical use right now.
"How do you know that a monoid action is isomorphic to a monoid homomorphism into an endomorphism monoid?"
"Well, I was trying to append two lists in Haskell..."
Precisely :-) "...and I still don't know how so I gave up and did it in Python because my boss wants the program today".
For an actual interminable Alice-in-Wonderland-esque journey that never seems to get anywhere, try to write C# programs that inter-operate with Microsoft Office.
So where do you want to go to today? :-) Paul.
participants (6)
-
Claus Reinke
-
Derek Elkins
-
Duncan Coutts
-
Paul Moore
-
roconnor@theorem.ca
-
Steve Schafer