PEP 3131: Supporting Non-ASCII Identifiers

Anton Vredegoor anton.vredegoor at gmail.com
Sun May 13 14:21:06 EDT 2007


Martin v. Löwis wrote:

> In summary, this PEP proposes to allow non-ASCII letters as
> identifiers in Python. If the PEP is accepted, the following
> identifiers would also become valid as class, function, or
> variable names: Löffelstiel, changé, ошибка, or 売り場
> (hoping that the latter one means "counter").

I am against this PEP for the following reasons:

It will split up the Python user community into different language or 
interest groups without having any benefit as to making the language 
more expressive in an algorithmic way.

Some time ago there was a discussion about introducing macros into the 
language. Among the reasons why macros were excluded was precisely 
because anyone could start writing their own kind of dialect of Python 
code, resulting in less people being able to read what other programmers 
wrote. And that last thing: 'Being able to easily read what other people 
wrote' (sometimes that 'other people' is yourself half a year later, but 
that isn't relevant in this specific case) is one of the main virtues in 
the Python programming community. Correct me if I'm wrong please.

At that time I was considering to give up some user conformity because 
the very powerful syntax extensions would make Python rival Lisp. It's 
worth sacrificing something if one gets some other thing in return.

However since then we have gained metaclasses, iterators and generators 
and even a C-like 'if' construct. Personally I'd also like to have a 
'repeat-until'. These things are enough to keep us busy for a long time 
and in some respects this new syntax is even more powerful/dangerous 
than macros. But most importantly these extra burdens on the ease with 
which one is to read code are offset by gaining more expressiveness in 
the *coding* of scripts.

While I have little doubt that in the end some stubborn mathematician or 
Frenchman will succeed in writing a preprocessor that would enable him 
to indoctrinate his students into his specific version of reality, I see 
little reason to actively endorse such foolishness.

The last argument I'd like to make is about the very possibly reality 
that in a few years the Internet will be dominated by the Chinese 
language instead of by the English language. As a Dutchman I have no 
special interest in English being the language of the Internet but 
-given the status quo- I can see the advantages of everyone speaking the 
*same* language. If it be Chinese, Chinese I will start to learn, 
however inept I might be at it at first.

That doesn't mean however that one should actively open up to a kind of 
contest as to which language will become the main language! On the 
contrary one should hold out as long as possible to the united group one 
has instead of dispersing into all kinds of experimental directions.

Do we harm the Chinese in this way one might ask by making it harder for 
them to gain access to the net? Do we harm ourselves by not opening up 
in time to the new status quo? Yes, in a way these are valid points, but 
one should not forget that more advanced countries also have a 
responsibility to lead the way by providing an example, one should not 
think too lightly about that.

Anyway, I feel that it will not be possible to hold off these 
developments in the long run, but great beneficial effects can still be 
attained by keeping the language as simple and expressive as possible 
and to adjust to new realities as soon as one of them becomes undeniably 
apparent (which is something entirely different than enthusiastically 
inviting them in and let them fight it out against each other in your 
own house) all the time taking responsibility to lead the way as long as 
one has any consensus left.

A.







More information about the Python-list mailing list