[Python-3000] PEP: Supporting Non-ASCII Identifiers

"Martin v. Löwis" martin at v.loewis.de
Tue May 1 18:14:10 CEST 2007

>> Python code is written by many people in the world who are not
>> familiar with the English language, or even well-acquainted with the
>> Latin writing system.
> [snip]
> That makes absolutely no sense. You mean to tell me that people write
> Python without being able to understand any of the language's
> keywords, builtin functions, standard library or documentation?

Exactly so. They have natural-language of the documentation, by means of
books and literal translation of the Python documentation, and they
don't try to grasp the meaning of the identifiers (e.g. I only yesterday
learned what a "hub" is, as in "hub-and-spoke". I accepted it to mean
"networking device that forwards packets" before. Many people around
here think that ASCII is pronounced A-S-C-two, i.e. II stands for a
Roman numeral - and these people did have some English training.)

I still don't understand why the "no operation" statement is called
"pass" - it's not the opposite of "fail", and seems to have no
relationship to "can you pass me the butter, please?".

The point is that even though many people get some passive knowledge
of English over time, they have a hard time with active usage of the
language. So when they need to come up with identifiers and put comments
into the code, they use their first language. See the comments for PEP
328 in


(I'm sure I can also find code with transliterated identifiers in the
 net, but finding that is bit more tedious, so I would prefer if
 you trust me on that).


More information about the Python-3000 mailing list