PEP 3131: Supporting Non-ASCII Identifiers
Thorsten Kampe
thorsten at thorstenkampe.de
Tue May 15 07:53:43 EDT 2007
* Eric Brunel (Tue, 15 May 2007 11:51:20 +0200)
> On Tue, 15 May 2007 11:25:50 +0200, Thorsten Kampe
> <thorsten at thorstenkampe.de> wrote:
> > * Eric Brunel (Tue, 15 May 2007 10:52:21 +0200)
> >> On Tue, 15 May 2007 09:38:38 +0200, Duncan Booth
> >> <duncan.booth at invalid.invalid> wrote:
> >> > Recently there has been quite a bit of publicity about the One Laptop
> >> Per
> >> > Child project. The XO laptop is just beginning rollout to children and
> >> > provides two main programming environments: Squeak and Python. It is
> >> an
> >> > exciting thought that that soon there will be millions of children in
> >> > countries such as Nigeria, Brazil, Uruguay or Nepal[*] who have the
> >> > potential to learn to program, but tragic if the Python community is
> >> too
> >> > arrogant to consider it acceptable to use anything but English and
> >> ASCII.
> >>
> >> You could say the same about Python standard library and keywords then.
> >
> > You're mixing apples and peaches: identifiers (variable names) are
> > part of the user interface for the programmer and free to his
> > diposition.
>
> So what? Does it mean that it's acceptable for the standard library and
> keywords to be in English only, but the very same restriction on
> user-defined identifiers is out of the question?
Yes.
> Why? If I can use my own
> language in my identifiers, why can't I write:
>
> classe MaClasse:
> définir __init__(moi_meme, maListe):
> moi_meme.monDictionnaire = {}
> pour i dans maListe:
> moi_meme.monDictionnaire[i] = Rien
>
> For a French-speaking person, this is far more readable than:
Because keywords are not meant meant to extended or manipulated or
something similar by the programmers. Keywords are well known and only
a limited set of words. That's why you can't use keywords as
identifiers.
On the contrary identifiers are for the user's disposition. The
convention for naming them is: give them the name that makes the most
sense in relation to the code. In a lot of cases this will mean
english names and ASCII charset. And in some restricted environments
this means naming identifiers with terms from the native language. And
in this case it makes no sense at all to restrict these people to use
ASCII characters to write words in their own language.
There really is no difference to allow strings or comments in non-
english languages and non-ASCII characters.
Thorsten
More information about the Python-list
mailing list