
Teaching kids to program in their native language - elangoc
http://google-opensource.blogspot.com/2016/03/teaching-kids-to-program-in-their.html
======
ginko
As someone who's not an English native speaker I feel localized programming
languages are sort of missing the point. The syntax of a language usually
isn't really the main roadblock in learning a language and while it might help
that you have some documentation in your native language, you're essentially
cut off from the rest of the world's documentation on the topic. And
considering that you should have a workable grasp of the English language by
middle school I wouldn't say that it's much of a roadblock when learning to
program.

~~~
gbkn
As an original non-native English speaker, I respectfully disagree.

People say my name is spelled funny or is too long...but it's not my problem,
it's English's problem. Its only 6 characters in my native tongue.

In the same vein, what other ideas or concepts from non-natives are we missing
because we are forcing them to learn a new language AND then to program?
Furthermore, when we in the West talk about open-source, diversity and equity,
we're still speaking in English. We're leaving a huge population out because
the barrier to entry is learning English. If non-native speakers are now able
to solve their own local problems in their local language, this is a boon for
humanity and why we should encourage efforts to break down barriers like this.

I for one, welcome this endeavour and thank elangoc for his work on this.

~~~
g8gggu89
> If non-native speakers are now able to solve their own local problems in
> their local language

But they won't be able to. Having a few keywords in your own language is
vastly different from 'being able to solve problems in your local language'.
It sounds like you don't understand programming.

~~~
gbkn
I was referring to the fact that you don't have to learn English to code. A
barrier that you don't seem to acknowledge.

~~~
imh
Are there any (programming) languages who's important libraries have solid
documentation/tutorial coverage in non-english languages? Honest question.
Those are a big part of programming for me.

~~~
elangoc
Yep. Ruby springs to mind. The creator, Yukihiro Matsumoto ("Matz"), is
Japanese. He co-wrote the first Ruby book, which was in Japanese. And a year
later, he co-wrote the first book for Ruby that was in English.

------
Corvus
Many musical terms, e.g. “a capella”, “tempo” and others are Italian. I am
curious about the potential impact on increasing diversity among musicians,
especially when we consider the number of people globally who do not have
access to a (good) Italian education that is an implicit prerequisite for
learning to play a musical instrument.

~~~
elangoc
Weak analogy. Text and language aren't as intrinsic to playing music and
reading/writing sheet music as they are to reading/writing source code.

~~~
abiox
i agree that it's not the strongest analogy, but it seems relevant. you seem
to be uncessarily bounding this on "text", which seems an incidental detail at
best.

------
kazinator
I would expect kids to have the least amount of trouble with foreign words.

And anyway, learning English is in demand world-wide.

If some parents already want their kids to learn English, you're hardly going
to sell them on the idea that, oh, your kids now have a way to learn
programming without English words.

~~~
elangoc
I've had people ask me, "Why don't we get everyone to speak just one language?
That would make everything easier."

That ignores a lot about the cultural meanings embedded in language and the
human tendency to use language to encode identity.

And on a very practical point, not everyone has access to learning English.
Wealth & wealth distribution matter. How close your native language is to
English also matters (is it Germanic? Indo-European? does it use a Roman
script? is it alphabetic?...)

~~~
Eridrus
I think this project is great, and it seems like a great teaching tool.

But maintaining your own separate language, computer or otherwise, imposes a
cost, it's not clear why the cost of that choice should be shouldered by the
rest of the world.

In general, I think having separate languages divides the world and they are a
net negative, despite their role in local culture we shouldn't be trying to
keep them all around.

The choice of English as the current lingua franca of the world isn't really
fair (nor certain), but there is no choice that is fair to everyone, and
English seems to have significant adoption already.

~~~
newjersey
It is interesting how the same companies that complain how nation states are
forcing Balkanization of the Internet (by propping up local rivals to SV
efforts) are the same people who are doing their own Balkanization in the name
of easy and quick growth.

I'd think a programming language is the last place you'd need i18n and l10n. I
know documentation isn't sexy but that's where we should focus our efforts. I
assume Google translate and tools like that will get us maybe 80% there but
there is still a lot of work involved.

All in all, looking at [https://raw.githubusercontent.com/echeran/clj-
thamil/master/...](https://raw.githubusercontent.com/echeran/clj-
thamil/master/src/cljx/clj_thamil/core.cljx) I am cautiously supportive of the
effort but we should still strive to maintain uniformity where possible.

------
vanderZwan
Reminds me of an article about the Scratch programming language, where the
author noted that being based around visual drag-and-drop blocks instead of
text strings meant it was trivial to translate _any_ Scratch program on the
fly:

> _Scratch, albeit visual, is still a language built around sentence
> fragments. Instead of using punctuation and assorted ascii art to enchant
> text into code, the structure and action of a Scratch program is almost as
> clear as prose. By using natural language fragments instead of magic
> identifiers in text, Scratch is unique in another aspect —
> Internationalization — Scratch programs can be built up out of German,
> French, Chinese, Japanese fragments too._

> _The look on peoples faces when you change scratch into their native
> language is worth treasuring, an aha moment where the code becomes readable
> in an instant. Scratch is so readable that it has come as a surprise to
> some, one remarking “I understand this. It can’t be programming”._

[http://programmingisterrible.com/post/76953953784/programmin...](http://programmingisterrible.com/post/76953953784/programming-
with-building-blocks)

------
teddyh
This reminds me of an article from the late 80’s: It was about someone having
created a new home computer specially made to be easy for kids to use
(actually a modified Compis painted in bright colours, if I recall correctly).
The computer had the keys on the keyboard _in alphabetical order_ , “ _so the
kids could more easily find the letters_ ”.

These kind of things might seem good in the short term, but it does the kids
absolutely no good for dealing with the real world.

------
alricb
Localizing Logo has a long and storied history. Papert founded LCSI in
Montreal, and LogoWriter, their implementation, was localized in French
(keywords and all, but there are very few keywords) and used in Quebec
schools. It was also localized in at least Spanish and Russian. Their current
product, Microworlds, is available in English, Spanish, Russian and Italian
(but not French).

I took a programming class in 11th grade in Quebec, with the old DOS version
of Logowriter, running on 286s with no hard drives, in 1996-1997. It was
pretty creaky, but you could make fun games with it with some effort.

------
hercynium
While Perl 6 was designed with English method and object names, it's a fully-
Unicode-enabled language, with the ability for identifiers and even operators
to be defined in any language one may desire. The name of the (currently)
primary implementation is a Japanese word, "Rakudo", which is also a pun in
Japanese depending on how you say and/or interpret it. Larry specifically
wants Perl 6 to noy be limited by English as much as is practical (or even
impractical, if you know him you'll understand - to him, code is just as much
poetry and art as it is engineering!)

------
calvinbhai
As someone who believes in localization, especially in every Indian script (if
not the language), I love this initiative and would like to see it succeed.

Many people who have been exposed to many languages, but only one script
through out their lives, may not appreciate the significance of such
localization.

Its easy to onboard and educated person in his/her language & script. Infact,
just doing it in devanagari script (used in Sanskrit and Hindi) can help many
native Indian langauge speakers get on the programing bandwagon.

------
baconizer
Being that 'geek' kid taught myself everything through all those sleepless
nights and fried boards, and the only outlier branded himself as 'programmer'
my whole family social circle ever know of, I do not have plan on teaching my
son any programming language. The last thing I want is taking away the fun he
discovering his talent. If he shows a great interests in what i am doing
everyday, I will just show him how to write in the programming language I am
using for work.

as you probably guessed, i'm not a native-english speaker as well :)

------
niccaluim
I love this! I started working on a toy language as an exercise, and since I'm
also trying to learn Icelandic, I thought, why not make my programming
language Icelandic? Places like Iceland aside (they speak better English than
_we_ do), I've often wondered if the Anglocentrism of programming is a barrier
to learning in other parts of the world. Maybe not the highest barrier, but an
obstacle nonetheless.

~~~
whitegrape
The Anglocentrism of programming is a boon, at least in open source. It means
that collectively hackers worldwide have been able to enjoy the fruits of each
others' labors because we all communicate and share patches in the same base
tongue. Allowing Unicode in source code is a mistake. Additionally for non-
English speakers who want to learn English, wanting to learn programming is a
better way to learn English than a passive classroom since you're actively
going to be reading and writing English to figure out solutions to your
programming problems. These projects to make the entryway into programming
more smooth (by using the native tongue) sound nice, but I worry that those
sucked into programming through this method will end up forming their own
cliques based on language and essentially cut themselves off from the rest of
the programming community.

~~~
gbkn
Why do you assume there is an innate pre-requisite to learn English to code? I
challenge that assumption.

Do you not see the diversity/ingenuity of problem solving when you travel to
different countries? What else are we missing in the Anglo world? Do you
assume everyone should speak English when you travel to China, India or Peru?

Why can't open-source communities form in different languages? Many people
speak more than 1 language and can share learnings across the communities,
just like in the real-world.

Bottom line: the world is diverse, let's make coding reflect that.

~~~
whitegrape
Sorry I didn't reply to this right away. I don't believe I made the assumption
that learning English is a prerequisite to coding, can you explain what made
you think I made that assumption?

Of course I see the diversity of the rest of the world and want their ideas in
the marketplace. But their ideas are so useless to me that they might as well
not even exist if I can't read them or hear about them. So it is very
important and good that if you care about your ideas getting exposure, and
want to cultivate the exposure of more foreign ideas, those ideas need to be
expressed in the most widely available language, which in the programming
world happens to be English. I don't particularly care too much that it's
English and not French or Cantonese, but I do care that it's something.
Diversity of spoken language is not important in itself, diversity of the
brains beneath the language (and to a possible extent how brains are shaped by
different mother tongues) is.

(Semi off-topic, but I do agree with the late Lee Kuan Yew that China should
make its official language English. ;))

Edit: I should also link to this as it's an argument along the same lines, and
also includes a bit for why English in particular is useful over something
else like e.g. German. [http://www.catb.org/esr/faqs/hacker-
howto.html#skills4](http://www.catb.org/esr/faqs/hacker-howto.html#skills4)
Second edit: and yeah, humans have been communicating despite language
barriers since the tower of babel fell, but it's inefficient.

------
scotty79
I've recently seen some news about research trying to teach people
programming. People learning language with randomly named keywords fared no
worse than with English keywords (at least C-like).

[http://neverworkintheory.org/2014/01/29/stefik-siebert-
synta...](http://neverworkintheory.org/2014/01/29/stefik-siebert-syntax.html)

------
cant_kant
" a library for processing for the THAMIL language " ?

I know of it as Tamil.

~~~
Manishearth
IIRC the fully conformant transliteration would be Thamizh.

(For those not in the know: zh sounds like l, but comes from the roof of your
mouth. Close to ळ in Devanagri)

------
ecesena
I like the effort, but I'm wondering if so many parenthesis are "manageable"
by a kid.

I have no kids, but I think that at younger age it's harder to be precise vs
understand a concept. Think coloring within the borders vs understanding to
color in or out a shape.

Based on this assumption, I think a simpler language would be something that
allows being imprecise (e.g. case insensitive, very limited punctuation).

I'm not saying precision shouldn't be taught. Imprecision should be allowed,
pointed out and expected to be corrected. But allowed in the first place. It's
like saying, first color and enjoy the result. Then learn to stay within the
borders and the result will be even more pleasant.

~~~
spc476
You can get used to nearly any form of syntax if it's your only exposure. I
used to work with code that looked like this:

    
    
        0 'CODE TAKEN FROM THE RAINBOW M
        AGAZINE, VOL. IV, NO. 1 (AUGUST
        1984), PAGE 78-'SOPWITH COCO' FL
        IES AGAIN!
        1700 X=30+SIN(JB)*28:Y=160-COS(J
        B)*28:CIRCLE(FA,FB),1,0:CIRCLE(X
        ,Y),1,1:FA=X:FB=Y:RETURN
        1710 IF D7=10 AND N(S)=0 THEN RE
        TURN ELSE LINE(30,160)-(SX,SY),P
        RESET:DRAW"C0;BM83,170;XA$(D7);B
        M-10,0;XA$(D6);BM-7,0;XA$(D5);C1
        ;XA$(10);BM+7,0;XA$(10);BM+10,0;
        XA$(10);":LINE(128,40)-(IX,IY),P
        RESET:CIRCLE(162,92+GX),1,0,.1:D
        7=10:D6=10:D5=10
        1712 IF AZ<AL THEN AZ=0
        1730 SCREEN1,0:RETURN
        1740 F=INT(RB(S)*.5729):G=INT(RB
        (S)*5.729)-(10*F):I=INT(RB(S)*57
        .29)-(100*F)-(10*G):DRAW"C0;BM66
        ,151;XA$(FS);BM+7,0;XA$(GS);BM+7
        ,0;XA$(IS);C1;XA$(I);BM-7,0;XA$(
        G);BM-7,0;XA$(F);":FS=F:GS=G:IS=
        I:JB=RB(S):GOTO 1700
    

(but only 16 lines were visible at a time) as a kid. I wrote a bit more on
this in my blog a few years ago
([http://boston.conman.org/2008/01/04.1](http://boston.conman.org/2008/01/04.1)).

~~~
DanBC
When you're looking at poor Brazilian children why give them the equivalent of
this:

    
    
        0 'RACR IMCRO GHOT UTH WEREMIN U
        KLEDUNTE, VOL. IV, NU. 1 (ASAGAT
        1984), JURM 78-'SOPWITH COCO' FL
        IES AGAIN!
        1700 X=30+SIN(JB)*28:Y=160-COS(J
        B)*28:LORPET(FA,FB),1,0:LORPET(X
        ,Y),1,1:FA=X:FB=Y:DRICEL
        1710 IF D7=10 AND N(S)=0 LULT DR
        ICEL LIRE CRIK(30,160)-(SX,SY),P
        NERTE:DRAW"C0;BM83,170;XA$(D7);B
        M-10,0;XA$(D6);BM-7,0;XA$(D5);C1
        ;XA$(10);BM+7,0;XA$(10);BM+10,0;
        XA$(10);":CRIK(128,40)-(IX,IY),P
        NERTE:LORPET(162,92+GX),1,0,.1:D
        7=10:D6=10:D5=10
    

Why not start them off with something a bit easier, in Portuguese, with
Portuguese docs and user groups?

They can learn English, maybe at the same time.

------
vmorgulis
Basic256 is awesome (previously KidBasic).

[http://www.basic256.org/index_en](http://www.basic256.org/index_en)

You can have quick impressive vocal "Hello, world!" with its speech synthesis:

    
    
        say "Hello, World!"
    

[http://doc.basic256.org/doku.php?id=en:say](http://doc.basic256.org/doku.php?id=en:say)

------
toast0
I'm relieved that this isn't a new, multilingual AppleScript. Using macros to
setup native aliases for syntax words seems reasonable, especially if it means
you don't have to change input methods all the time. Although if you're going
to use libraries, those names are likely going to have to type those names in
English (or wrap them in native aliases too)

------
failrate
This should be easy, since I've brought up my child to sprak and write
exclusively in Racket Scheme.

------
kdkooo
Perhaps this could serve as a helpful middle-man and offer a compromise to
those who feel strongly either way.

------
ianbicking
jslogo has support for translation of keywords (and at least some actual
translations, though I don't know how to activate them):
[https://github.com/inexorabletash/jslogo](https://github.com/inexorabletash/jslogo)

