PEP 3131: Supporting Non-ASCII Identifiers

Stefan Behnel stefan.behnel-n05pAM at web.de
Wed May 16 04:45:06 EDT 2007


René Fleschenberg wrote:
> Stefan Behnel schrieb:
>>>> - Non-english speakers can not create or understand
>>>>   english identifiers hence can't create good code nor
>>>>   easily grok existing code.
>>> I agree that this is a problem, but please understand that is problem is
>>> _not_ solved by allowing non-ASCII identifiers!
>> Well, as I said before, there are three major differences between the stdlib
>> and keywords on one hand and identifiers on the other hand. Ignoring arguments
>> does not make them any less true.
> 
> I agree that keywords are a different matter in many respects, but the
> only difference between stdlib interfaces and other intefaces is that
> the stdlib interfaces are part of the stdlib. That's it. You are still
> ignoring the fact that, contrary to what has been suggested in this
> thread, it is _not_ possible to write "German" or "Chinese" Python
> without cluttering it up with many many English terms. It's not only the
> stdlib, but also many many third party libraries. Show me one real
> Python program that is feasibly written without throwing in tons of
> English terms.
> 
> Now, very special environments (what I called "rare and isolated"
> earlier) like special learning environments for children are a different
> matter. It should be ok if you have to use a specially patched Python
> branch there, or have to use an interpreter option that enables the
> suggested behaviour. For general programming, it IMO is a bad idea.

Ok, let me put it differently.

You *do not* design Python's keywords. You *do not* design the stdlib. You *do
not* design the concepts behind all that. You *use* them as they are. So you
can simply take the identifiers they define and use them the way the docs say.
You do not have to understand these names, they don't have to be words, they
don't have to mean anything to you. They are just tools. Even if you do not
understand English, they will not get in your way. You just learn them.

But you *do* design your own software. You *do* design its concepts. You *do*
design its APIs. You *do* choose its identifiers. And you want them to be
clear and telling. You want them to match your (or your clients) view of the
application. You do not care about the naming of the tools you use inside. But
you do care about clarity and readability in *your own software*.

See the little difference here?

Stefan



More information about the Python-list mailing list