[beginner] What's wrong?

Thomas 'PointedEars' Lahn PointedEars at web.de
Sun Apr 3 07:47:21 EDT 2016


Rustom Mody wrote:

> On Saturday, April 2, 2016 at 10:42:27 PM UTC+5:30, Thomas 'PointedEars'
> Lahn wrote:
>> Marko Rauhamaa wrote:
>> > Steven D'Aprano :
>> >> So you're saying that learning to be a fluent speaker of English is a
>> >> pre-requisite of being a programmer?
>> > 
>> > No more than learning Latin is a prerequisite of being a doctor.
>> 
>> Full ACK.  Probably starting with the Industrial Revolution enabled by
>> the improvements of the steam machine in England, English has become the
>> /lingua franca/ of technology (even though the French often still
>> disagree, preferring words like « ordinateur » and « octet » over
>> “computer” and
>> “byte”, respectively¹).  (With the Internet at the latest, then, it has
>> also become the /lingua franca/ of science, although Latin terms are
>> common in medicine.)
> 
> IMHO the cavalier usage of random alphabet-soup for identifiers

Straw man.  Nobody has suggested that.  Suggested were words in natural 
languages other than English as (parts of) names in Python programs.

The suggestion was rejected by some (including me) on the grounds that 
source code is not written only for the person writing it, but also for 
other developers to read, and that English is the /lingua franca/ of 
software development at least.  So it is reasonable to expect a software 
developer to understand English, and more software developers are going to 
understand the source code if it is written in English.

Another argument that was made in favor of English-language names (albeit on 
the grounds of “nausea” instead of the logical reason of practicality) is 
that the (Python) programming language’s keywords (e.g., False, None, True, 
and, as, assert [1]) and built-in identifiers (e.g., NotImplemented, 
Ellipsis, abs, all, int, float, complex, iterator [2]) are (abbreviations or 
concatenations of) *English* words; therefore, mixing keywords with names
in a natural language other than English causes source code to be more 
difficult to read than an all-English source code (string values 
notwithstanding).  This is particularly true with Python because a lot of 
(well-written) Python code can easily be read as if it were pseudocode.  (I 
would not be surprised at all to learn that this was Guido van Rossum’s 
intention.)

As for the “Chinese” argument, I did some research recently, indicating that 
it is a statistical fallacy:

<http://yaleglobal.yale.edu/content/english-craze-hits-chinese-language-standards>
<http://yaleglobal.yale.edu/content/asians-offer-region-lesson-%E2%80%93-english>

>From personal experience, I can say that I had no great difficulty 
communicating in English with my Chinese flatmates and classmates at a 
German technical university when all of us were studying computer science 
there 16 years ago.  It was natural.  At least the boys even preferred self-
chosen English first names for themselves (e.g., in instant messaging) 
since, as they explained to me, their original names were difficult to 
pronounce correctly for Europeans (or Europeans might mistakenly call them 
by their family name since it would come first), and to type on European 
keyboards (although I observed them to be proficient in using IMEs when 
chatting with their folks back home).

____________
[1] <https://docs.python.org/3/reference/lexical_analysis.html#identifiers>
[2] <https://docs.python.org/3/library/>

> can lead to worse than just aesthetic unpleasantness:
> https://en.wikipedia.org/wiki/IDN_homograph_attack

Relevance?

> When python went to full unicode identifers it should have also added
> pragmas for which blocks the programmer intended to use -- something like
> a charset declaration of html.
> 
> This way if the programmer says "I want latin and greek"
> and then A and Α get mixed up well he asked for it.
> If he didn't ask then springing it on him seems unnecessary and uncalled
> for

Nonsense.

-- 
PointedEars

Twitter: @PointedEars2
Please do not cc me. / Bitte keine Kopien per E-Mail.



More information about the Python-list mailing list