[Python-3000] Support for PEP 3131 (original) (raw)
"Martin v. Löwis" martin at v.loewis.de
Sun May 13 20:27:34 CEST 2007
- Previous message: [Python-3000] Support for PEP 3131
- Next message: [Python-3000] Support for PEP 3131
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Have there been studies on this kind of thing? Has there been any research into whether a mixture of English keywords and, say, Japanese and English identifiers makes a given programming language easier to learn and use? If so, why aren't they referenced in the PEP or linked in any emails?
There is anecdotal evidence that people intuitively use characters from their native language, and then are surprised by the syntax errors.
Unfortunately, they are not required to report their usage to the Ministry for Use Of Funny Characters In Programming Languages.Given the lack of evidence presented so far, my operating assumption is that the PEP's supporters -- including you -- are making things up to support a conclusion that they might wish to be true.
Are you also assuming that I make up my mentioning of anecdotal evidence?
Also, method/function names are traditionally expressed in English as verb phrases (e.g., "isElementVisible()") which dovetail nicely with Anglo-centric keywords like "if" and "for ... in ...". How do identifiers in languages with dramatically different grammars like Japanese -- or worse, different reading orders like Farsi and Hebrew -- interact with "if", "while" and the new "x if y else z" expression, which are deeply rooted in English grammar? My suspicion is, at least for right-to-left languages like Arabic, not well, if at all.
I don't speak Farsi, Arabic, or Hebrew, so I can't comment on that. I know that in German, if/while is not an issue at all. People regularly read "if" aloud as "wenn" or "falls".
Lastly, I take issue with one of the PEP's guidelines under the "Policy Specification" section: "All identifiers in the Python standard library...SHOULD use English words wherever feasible" (emphasis in the original). Are we now going to admit the possibility that part of the standard library will be written in English, some parts will be written in Spanish and this one module over there will be written in Czech? Absolutely ludicrous.
The emphasis follows the convention of RFC 2119; it's not an emphasis, but an indication of specification.
- SHOULD This word, or the adjective "RECOMMENDED", mean that there may exist valid reasons in particular circumstances to ignore a particular item, but the full implications must be understood and carefully weighed before choosing a different course.
There are already deviations from that rule in the standard library:
(aifc.AIFC_read.)initfp (aifc.AIFC_read.)getnchannels (aifc.AIFC_read.)getcomptype (asyncore.dispatcher.)del_channel (binhex.)_Hqxcoderengine opcode.def_op opcode.name_op opcode.jrel_op (etc.)
all are not proper English words.
Regards, Martin
- Previous message: [Python-3000] Support for PEP 3131
- Next message: [Python-3000] Support for PEP 3131
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]