HYRY wrote: >> - should non-ASCII identifiers be supported? why? > Yes. I want this for years. I am Chinese, and teaching some 12 years > old children learning programming. The biggest problem is we cannot > use Chinese words for the identifiers. As the program source becomes > longer, they always lost their thought about the program logic.
That is probably because they are just entering the developmental phase of being able to use formal operational reasoning. I can understand that they are looking for something to put the blame on but it is an error to give in to the idea that it is hard for 12 year olds to learn a foreign language. You realize that children learn new languages a lot faster than adults? > English keywords and libraries is not the problem, because we only use > about 30 - 50 of these words for teaching programming idea. They can > remember these words in one week. But for the name of variable or > function, it is difficult to remember all the English word. For > example, when we are doing numbers, maybe these words: [odd, even, > prime, minus ...], when we are programming for drawing: [line, circle, > pixel, ...], when it's for GUI: [ button, event, menu...]. There are > so many words that they cannot just remeber and use these words to > explain there idea. Again, it's probably not the language but the formal logic they have problems with. Please do *not* conclude that some child is not very good at math or logic or programming when they are slow at first. It doesn't tell one very much how good they might become later on and some premature idea the teacher might have formed about a pupil in that phase can even be harmful for their later perspectives. > Eventlly, when these children go to high school and study enough > English, I think they can use English words for programming. But as > the beginning step, it is difficult to learn both programming and > English. The older they get the harder it is for them to learn language. By withholding them English language experience at an early age you are doing them a disservice because later on they will have more trouble. The other thing is trying to teach them formal operational logic when they are not yet ready for it. In that case it would be better to wait until they are ready, but unfortunately there are large variations in the age at which children become ready. Please do not confuse the two very different matters of language acquisition and formal operational logic. Language is learned at an early age while formal logic starts at about the age of eleven (but with very large variation among children). > So, I made a little program, just replace all the Chinese words in the > program to some sequency identifiers such as [a1, a2, a3, ...], So we > can do programming in Chinese, and Python can still run it. Why not use IronPython? But anyway you are actually making things worse by *not* teaching them the language now that they will need later on and by *teaching* them formal operational logic at an age when they just get disappointed and frustrated by not yet being able to understand it. Better go easy on them and teach them lots of English computing terms and only introduce logic when they show they are ready. A. -- http://mail.python.org/mailman/listinfo/python-list