Actually, I have to say that viceversa when I started learning English more seriously, the opposite happened. I realized the connection and, for instance, was able to put "until" in the correct sentences because it had a precise meaning coming from the programming languages.
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.
It's a stretch to even call some of the keywords in some languages words (car, cdr, con?). They're just tokens to feed to the compiler or interpreter, like parenthesis.
Even when full English words are used, it's rarely in the conventional meaning. English speaker or not, you'll have to learn what the word actually means in the given programming 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.
Most (not all) european languages (e.g., French, German, English, Spanish) have same or almost similar script, making it easy to pickup words and phrases of an another language with the same script.
Agreed that you are cutoff from the rest of the world's documentation on the topic, I do see your point there. But, without this bridge, people who dont know how to read/write/understand latin/english script, they are cutoff from the world not just on the topic, but everything else.
Here's why that is important to know: By some estimates, about 10% of Indian population can speak english. Even if you were to consider 20% can read the english alphabet, thats still nearly a billion people who will have difficulty in getting started with programming, because all they know is a Tamil, Kannada or Telugu script (all quite different from each other and from English).
having a localized programming language can enable lot more diversity in the field of computer programming (especially in countries like India).
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.
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?...)
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.
> 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...
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.
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.
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.
as you probably guessed, i'm not a native-english speaker as well :)
From personal experience: no. I was 7 or 8 when I started learning BASIC and I didn't speak a word of English at the time. FOR, IF, GOTO, etc. were just abstract words for me. Things of their own that resulted in specific behavior. I didn't really grasp the "real world" meaning behind them until I started learning English later.
I thought it was absolutely terrific how the programming language was nearly grammatical, because English words didn't require inflecting. For instance PRINT is both the imperfective dictionary form of a verb, and an imperative. This means that programming can use English verbs in their dictionary form (easy to look up!) and yet these uses nicely read as imperatives: print this, update that, etc. The target nouns of an imperative have the same form as datives. The "foo" doesn't change between "here is variable foo" and "add 3 to foo".
I thought, man, English is working great for programming, this is so easy!
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.
If you're interested, I brought up these considerations and tradeoffs in the talk I gave last year - https://youtu.be/MqjMZNwnYCY
Yet, by the same token, (pun absolutely intended) introducing cases and declensions into a programming language is a bad idea.
Here's what programming in Malayalam looks like - https://twitter.com/prathyvsh/status/635733805567840256
I don't believe that we give enough credit to the hurdle that exists when you have to learn English to learn programming. One of my cousins grew up in a village in Tamil Nadu (Southern India) where even the English teacher didn't know English well... The high-school computing courses were just about using desktop office apps. Kids end up just memorizing which icons do what actions (as opposed to reading the self-explanatory tooltips, menus, and error dialogs). The obstacles to equity for someone like her occur on multiple dimensions. I imagine the distribution of difficulty for non-native speakers skews more towards her end than towards those with better access to learning English.
This ensured that a Political Party / Candidate name wouldn't face the localization hurdles in a constituency which has people speaking/knowing 3 to 4 different scripts and languages. Even during the election campaigning, politicians ask people to vote for a symbol, because it breaks the language/script barriers.
The hurdle often is not obvious for many people, because when they think "different languages", they assume its the same script.
http://neverworkintheory.org/2014/01/29/stefik-siebert-synta...
I know of it as Tamil.
(For those not in the know: zh sounds like l, but comes from the roof of your mouth. Close to ळ in Devanagri)
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.
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). 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.
I think they are proposing a language for a multitude of kids, I assume to be thought in schools. Applied to their case, I don't think what you say here works, i.e. you can't teach that to a class of 10-30 kids.
You need to find something which is "ok" (whatever that means) for the average kid. And that's why I was expressing my concerns about the parentheses.
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