[Haskell-cafe] ANN: AC-Vector, AC-Colour and AC-EasyRaster-GTK
ok at cs.otago.ac.nz
Tue Jul 14 23:27:26 EDT 2009
On Jul 10, 2009, at 8:44 PM, Wolfgang Jeltsch wrote:
> Am Freitag, 10. Juli 2009 05:26 schrieb roconnor at theorem.ca:
>> I find it amazing that you independently chose to spell colour with
>> a `u'.
>> It makes me feel better about my choice.
> I have to admit that it makes me unhappy. :-(
> Why do we use English for identifiers? Because English is the
> language of
> computer science. What English should we use? It’s tempting to say,
> we should
> use the original English, which is British English. But we should
> ask again
> what is the language of computer science. And the language of computer
> science is American English.
It was possible to adopt such an attitude in the 20th century.
But this is the 21st century. We have globalisation,
internationalisation, localisation. We have Unicode, so that
people are no longer limited to the set of characters that
technicians from the USA found tolerable back in 1967. (Note
that "Americans" includes French Canadians and lost of people
who mainly speak Spanish.)
Let's face it, by this argument we'd have to abandon the
metric system when writing computer programs.
There are good reasons to adopt American speling for a term
or English spelling. They include the language that the
author is most familiar with, the language the paying
customers are most familiar with, the language of the laws
that the program has to conform to, any number of things.
But there is a way above this issue.
Why can't we have BOTH "Colour" AND "Color"?
What changes, if any, would it take for Haskell to
support bidialectal naming practices (whether it is English
-vs- American, insular/Brazilian Portuguese, Norwegian,
Arabic dialects, or whatever)?
We can create an alias for a type easily enough.
We can create an alias for a defined function easily enough.
We cannot create an alias for a constructor; there is no way
data X = A | B Int
constructor C = B
so that C can be used for pattern matching just like B.
We cannot create an alias for a module name; while we
can create a module that re-exports everything from some
module, there is no way to make them act the same as far
as inheritance of dotted names is concerned.
SML has similar limitations, but not quite the same.
It lets us create alias for types and defined functions.
It also lets us create aliases for modules, its structures
and functors (more or less). But even SML doesn't allow
the definition of aliases for constructors.
> To my knowledge, most early developments in computer science had
> their roots
> in the US. One consequence of this is that reserved words of
> languages are typically in American English. PASCAL uses “program”,
> not “programme”, and BASIC uses “COLOR”, not “COLOUR”. So, in my
> Haskell color packages should use the identifier Color, not Colour.
> By the
> way, I also write my papers and documentation in American English.
> Best wishes,
> (who is neither British nor American)
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
More information about the Haskell-Cafe