Non-English-based programming languages
en.wikipedia.org
en.wikipedia.org
1. https://code.google.com/archive/p/grass-mud-horse/
2. https://en.wikipedia.org/wiki/Grass_Mud_Horse
3. https://en.wikipedia.org/wiki/List_of_Internet_phenomena_in_...
4. http://zqcoder.qiniucdn.com/data/20120914162548/index.html
Perhaps a revised APL with more modern/simplified symbols and some syntactic rules reducing the scope for jumbled muck, and an IDE that translates the symbols in to native human language explanations on mouseover.
But I don't see the prevalence of subject-object-verb. At least western languages are mostly subject-verb-object. Are you talking about eastern ones?
[0] https://en.wikipedia.org/wiki/Subject%E2%80%93object%E2%80%9...
Though, on the other hand, for object-oriented languages in general, I often wish people new to them knew Japanese, because the "." operator (field-access, method lookup/calling) is kind of hard to explain in terms of English grammar, but in Japanese, you can just tell students to pronounce it as a の and they immediately get it.
I think "backwards of" gets the point across alright for an English version of "."/no.
What parts exactly? As a Japanese speaker, all the object methods seem super intuitive. Specifically, the iterator methods vs traditional for loops.
Rails and what not, however, not so much.
I once saw a computer which had a Basic with keywords in Portuguese, but I have never found any references to it on the Internet. Logo was translated by several people, but unfortunately they didn't coordinate their efforts so Portuguese Logo programs were even less portable between versions than normal.
In 1984 I translated all of Smalltalk as described in the "blue book" to Portuguese, but it wasn't easy:
1) "self" does not have a nice equivalent
2) lots of words like "copy" can be either a verb or an adjective. No matter which Portuguese option you choose it will work in some contexts and be really bad in others
3) lots of words like "new" are gender neutral. No matter which Portuguese option you choose it will work in some contexts and be really bad in others
4) word order for adjectives is the opposite in English and Portuguese. This actually fits in well with the postfix syntax of Smalltalk's unary selectors, but breaks down when naming components: "car door window" works but it would have to be "janela da porta do carro", which doesn't work
5) You might be able to tell the difference between "ordered" and "sorted" when describing collections, but Portuguese uses the same word for both
Smalltalk-80 makes a distinction between String objects and Symbols. So you can have many 'new' strings but that gets converted into a systemwide unique #new symbol which is used for method names and other things. I created a MultiSymbol class in Smalltalk-V that would convert any of a set of strings into the same symbol. When going the other way around (to print, for example), it would use the value of a global variable to pick between the objects. So you could type in your program in Russian and ask it to be listed in Portuguese, for example. This was good enough for all the standard symbols, but you would have to add translations for any new symbol you created yourself. It got the job done, but by the late 1990s everyone I met had a strong opinion that programming languages have to be in English.
1) my father once brought home from work a book about programming with dBase-II. The problem was that they had not only translated all of the text but the program listings as well. I told him that if he tried typing in any of the examples it would not work at all. I wonder if anybody ever bothered trying it.
2) A company called Brascom was selling illegally imported Cromenco computers in Brazil with the name BR-1000. They decided to rename the Cromix operating system to BR-1000 as well. In the manual they simply replaced every instance of "cromix" with "br1000". A student complained that he couldn't get one of the examples in the manual to work, so I looked at it and noticed it had a "br1000(300);" system call in it, so I suggested that he try "cromix(300);" instead. It now compiled and ran just fine.