[Python-3000] Support for PEP 3131

"Martin v. Löwis" martin at v.loewis.de
Sun May 13 13:55:26 CEST 2007

> One point that was raised by Alex Martelli is that the full set of 
> Unicode 'letter' characters includes many characters which are visually 
> indistinguishable in every font in the world. It means that, from now 
> on, when I look at the variable named 'a', I can no longer be sure that 
> what I am looking at is really the character I think it is. It means 
> that we have introduced, for every Python programmer, a level of 
> uncertainty that wasn't there before.

That's a red herring. This problem is unlikely to occur in practice.
There are other, more serious cases of presentation ambiguity
(e.g. tabs vs. spaces), yet nobody suggests to ban tabs from the
language for that reason.

> However, I think it is a mistake to think that programs themselves are 
> written in "English", they are written in a formal language, similar to 
> the language of mathematics, which every programmer needs to put in a 
> modest amount of effort to learn, even native English speakers.

While that is true from the computer's point of view, it is not so
for many people writing programs. They want to understand programs
"naturally", not "mathematically". If it was only for the mathematical
properties, we could restrict ourselves to identifiers _1, _2, _3,
and so on.

> In any case, I would argue that if you teach someone to program in a 
> dialect that cannot be understood by the global community of 
> programmers, then you haven't really taught them 'programming' at all - 
> you've taught them a kind of applied logic that they might be able to 
> use personally, but that is only a small part of the craft of software 
> engineering.

What is the relationship to this PEP? (and in the paragraphs that I
snipped?) Following your long text of reasoning - are you now in favor
or opposed to the language change proposed in PEP 3131?

> There is another issue to be considered as well: Many human languages 
> have a different grammatical structure. Even if you were to allow 
> non-ASCII identifiers, and more so even if you were to allow the 
> keywords themselves to be localized, you still have the problem that 
> 'if' comes at the start of a sentence, which makes no sense in many 
> languages.

The PEP doesn't propose to adjust the grammar of Python to the grammar
of any natural language. All it proposes is to extend the language
to allow additional characters in identifiers.


More information about the Python-3000 mailing list