[Python-ideas] Truly international Python

Dima Tisnek dimaqq at gmail.com
Wed Dec 1 23:08:28 CET 2010


Thanks for the comments, it is indeed a valid observation that shorte
syntax is preferred.

Perhaps, what is needed for education is not a clone of Python with
native syntax, but rather a learner-friendly Python editor that
supplants native Python syntax with short explanations and examples in
native language. A decent editor already distinguishes between
keywords, standard types, etc, and already displays
phpdoc/javadoc/etc, similar context-aware hooks for keywords and
translated docstrings for standard modules, perhaps aliases for
standard functions, auto-correction for local punctuation and perhaps
auto-correction between scripts should be enough.

It doesn't help with writing systems radically different from latin,
but then again Python use of punctuation may be completely
incompatible in this case anyway.

2010/12/1 Alexander Belopolsky <alexander.belopolsky at gmail.com>:
> On Tue, Nov 30, 2010 at 12:46 PM, Dima Tisnek <dimaqq at gmail.com> wrote:
> ..
>> Now the larger part of the world's children doesn't learn English
>> before school, therefore we need to have truly localized Python.
>>
>
> As Russians say, "All 'new' is old, but well-forgotten" (<<Все новое -
> это хорошо забытое старое>>.)  In the 80's, when I went to school in
> the USSR , we studied a programming language called RAPIRA (<<РАПИРА>>.)
>  You can see what it looked like on Wikipedia. [1]  It was a
> traditional Algol-like language with some features (such as '::'
> delimiter for the loop and conditional statement bodies) similar to
> Python. RAPIRA used Russian exclusively.  In fact, many popular
> computers at that time used a 7-bit character set and displays had a
> physical switch that controlled whether user will see Latin or
> Cyrillic glyphs for the same 7-bit codes, so you could not effectively
> mix Russian and English in the same document.
>
> Russian is a relatively easy natural language for an adaptation of a
> computer language designed in English.  Many, particularly Latin or
> Arabic origin words are the same in English and Russian: "algorithm",
> "procedure", "function", "cycle" all sound very close to their Russian
> translations.   Punctuation and grammar of English and Russian are not
> that dissimilar, so a word-by-word translation of a simple English
> sentence may not be perfect, but can usually be understood by a
> Russian speaker.  Still, in its early versions RAPIRA evaluated
> assignment statements left to right and used '->' operator.  (You
> would write "1 -> x" instead of "x = 1".)   That order was considered
> more natural.
>
> Nevertheless,  RAPIRA designers had to meet some challenges.    For
> example, many common keywords had Russian translations that were
> longer than English prototypes:  "if" is "если" and "end" is "конец".
>  It appears that "end" was considered too common to use a 5-letter
> word "конец" for, so it was abbreviated to "кнц".
>
> RAPIRA had limited success and many schools switched to teaching Pascal instead.
>
> I note, however that RAPIRA was designed for high-school level
> students, not for pre-K.  What I observed in young students, was that
> they prefer unfamiliar but shorter words to longer but meaningful
> ones.   When children learn that in turtle they can write "fd" and
> "lt" for "forward" and "left", they start using these forms
> exclusively.  This phenomenon is not limited to abbreviations.
> Children who grow up in multi-lingual environment often mix up words
> from different languages in the same sentence picking shorter words.
>
> I suggest that those interested in teaching young children programming
> in their native language start by localizing the turtle module.  It
> already has hooks for translating docstrings, but I don't think
> translating function names was considered.  I predict that children
> will still prefer "fd" and "lt" to their local equivalents simply
> because they are easier to type.   The the bigger barrier in my
> experience was not the meaning of the words, but Python syntax.  For
> many young students, "degrees" is a new word regardless of the native
> language used to express it.  The need to remember that arguments need
> to be comma separated and placed inside parentheses is often a bigger
> challenge.   In this respect a Tcl- or Logo-like language may be more
> suitable for this age.  See also a simple command interpreter for
> turtle presented as a cmd module example. [2]
>
>
> [1] http://ru.wikipedia.org/wiki/Файл:RAPIRA_example.png
> [2] http://docs.python.org/dev/library/cmd.html#cmd-example
>



More information about the Python-ideas mailing list