Lennart Augustsson wrote:
> Why do people think that you should be able to understand everything
> without ever looking things up?
> I'll get back to my example from the comment on the blog post.  If I
> see 'ghee' in a cook book I'll check what it is (if I don't know).  It
> has a precise meaning and next time I'll know.  Inventing a new word
> for it serves no purpose, but to confuse people.
> Parts of Computer Science seem to love to invent new words for
> existing concepts.  Again, I think this just confuses people in the
> long run.  Or use existing words in a different way (like 'functor' in
> C++.)
>   
ghee is ghee. There are variations of ghee, but when a cookbook calls
for ghee, just about any variation will work fine. Furthermore, whenever
a cookbook calls for ghee, you are making food. Conversely a monoid is
an algebraic structure. A Monoid (the type class) is an abstraction used
to ensure that a particular variation of a monoid is actually
representative of a monoid. There are many variations (:i Monoid shows
17 instances). Most are used for different purposes and few are
interchangeable for a given purpose.

Inventing new words definitely serves a purpose; it is a form of
abstraction. We need new words to manage conceptual complexity just as
we build abstractions to manage code complexity. In fact, Monoid was
once a new word that was invented to serve that very purpose.

I don't think the solution to this problem is to rename it to
Appendable. I think the "solution" is to allow programmers to alias
Monoid as Appendable similar to the way you can alias a module when you
imort it. The details of that solution would be very difficult to
introduce though.

Drew P. Vogel


Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to