&gt; From: kirby urner &lt;<a href="mailto:kirby.urner@gmail.com">kirby.urner@gmail.com</a>&gt;<br>&gt; To: <a href="mailto:edu-sig@python.org">edu-sig@python.org</a><br>&gt;  <br>&gt; I find myself thinking about PEP8 a lot, not that I have it memorized.<br>

&gt;<br>&gt; Now that Unicode reigns at the top-level, we&#39;ve got an influx of<br>&gt; Chinese namespaces, Hindi namespaces, Cyrillic namespaces...<br>&gt; a nice long list, and the PEP8 conventions regarding capitalization,<br>

&gt; while sensible in Latin-1, might not cover the new cases [...]<br><br>Remember that PEP 8 is a guideline, not a requirement, and that it is documented as:<br>&quot;This document gives coding conventions for the Python code comprising the standard library in the main Python distribution. &quot;<br>

Any programmer may choose any style she prefers for her own use.  If she is writing modules for the standard library -- and expects to have them accepted by the community -- then she will follow PEP 8.<br><br>&gt; The inter-readability of Latin-1 means lots of headaches removed,<br>

&gt; like at least *something* positive came out of that Roman period [...]<br><br>Yes, having taken a contract to maintain code where the author wrote his comments in Romanized Ukrainian, I have a great respect for non-English-native authors who take the time to learn English well.  It is a terrible language to have to learn, I am told, but is the only one _all_ software engineers can be expected to know.<br>

<br>Also PEP 8 states that: &quot;Latin-1 (or<br>    UTF-8) should only be used when a comment or docstring needs to<br>    mention an author name that requires Latin-1; otherwise, using<br>    \x, \u or \U escapes is the preferred way to include non-ASCII<br>

    data in string literals.&quot;<br><br>Even then, I would hope that an author would include an Anglicized version of his name, so that I can recognize it when I see it again. The only alphabets I personally can read are Latin, Cyrillic, Hebrew, and Greek.  If your name is in Cherokee, then please put (John Standing Bear) in ASCII along side it.<br>

<br>There is a very good reason for this:  standard library code must be readable for people all over the world.  That&#39;s why a Dutch software engineer wrote a language in which all the keywords and commentary are in English.  <br>

&gt;<br>&gt; The flip side argument, which I find more persuasive, is that<br>&gt; one of the biggest barriers to diversity is over-reliance on Latin-1,<br>&gt; and &quot;just ASCII&quot; in particular.<br>&gt;<br>&gt; The whole point of Unicode was to open up source code writing,<br>

&gt; as an occupation, to more than just Euro-English speakers.<br><br>I disagree.  The whole point of Unicode is to open up application writing, so that _users_ can see computer output in their own languages.  A person who wishes to pursue code writing as an occupation must understand and use English -- or be relegated to producing work only for his own culture.  In the modern &quot;flat&quot; world, English is the language of commerce and computer programming.  Not being able to write understandable English is a severe handicap. My programs are written in Python, documented in English, and usable by persons of another language.  For example, see CaesarCalc.py from <a href="https://launchpad.net/romanclass">https://launchpad.net/romanclass</a> , which assumes the user to be able to understand pigeon Latin. Even then, I give the result of (XVI - XVI) as &quot;Nulla&quot; because I expect that most users will not recognize &quot;Nvlla&quot; as meaning &quot;nothing.&quot;<br>

<br>Here is sample output.  Notice that, when it blows up the traceback is in Python with English explanations:<br>&lt;console dump&gt;<br>procer numerus hic:III - II<br>I<br>procer numerus hic:3 - 2<br>I<br>procer numerus hic:3 - 3<br>

Nulla<br>procer numerus hic:2 - 3<br>Traceback (most recent call last):<br>  File &quot;CaesarCalc.py&quot;, line 40, in &lt;module&gt;<br>    print (cvt(subtrahends[0]) - cvt(subtrahends[1]))<br>  File &quot;/home/vernon/romanclass-1.0.1/romanclass.py&quot;, line 99, in __sub__<br>

    return Roman(self.__int__() - other)<br>  File &quot;/home/vernon/romanclass-1.0.1/romanclass.py&quot;, line 85, in __new__<br>    raise OutOfRangeError, &#39;Cannot store &quot;%s&quot; as Roman&#39; % repr(N)<br>romanclass.OutOfRangeError: Cannot store &quot;-1&quot; as Roman<br>

&lt;/console dump&gt;<br><br>IMHO, on the whole, PEP 8 is a pretty good document.<br>--<br>Vernon<br><br>