Renaming identifiers & debugging

Diez B. Roggisch deets at nospam.web.de
Thu Feb 25 19:05:49 EST 2010


>> And also I don't think that your concerns are valid in general.
>> Keywords are like brandnames or other things - the stand for a
>> concept, and people immediatly accept them when they want them.
>
> Maybe you are right, but being italian myself i can remember when i was
> a middle schooler (no computer before that) and the hours spent on my
> MSX figuring out how the thing worked. I learned all the commands as
> "brandnames" without really understanding them. I had _no_ idea that
> "if" meant... if, or that "print" meant to print. I had zero knowledge
> of english and for this reason most of these commands were meaningless
> to me, i didn't even suspect they had a meaning in an existing language,
> i just thought that was the way computers talked. When several years
> later, in High School, i learned English it was a real surprise for me
> to find out that the commands i had learned by heart as "magical words"
> actually had a precise meaning in "human language" and i think this
> would have helped me to figure out several things that instead took
> hours or days to understand.
> Now kids have internet, they study english from the kindergarten, they
> have a huge quantity of manuals and books freely available, so maybe you
> are right and i am just over-worrying. But still, i think it would be
> nice to use a language familiar to the kid (especially very young ones),
> it would make the learning process faster (no need to learn new words)
> and it would make the computer feel almost like a virtual "friend".

I can't argue this from a technical point of view. Nor from a personal, 
as when I was first exposed to programming, I already new a few bits & 
pieces of english (leaving highschool with an E grade though....)

However, I'm pretty sure what held me back most was the lack of 
(affordable, tuned to the younger audience) course material, and 
exchange with peers. Both which has *massively* changed with the 
internet available even in rather rural aereas of the world.

Now under the assumption that you are right here, if keywords are what 
children keeps from learning programming - then your approach stops much 
to early. I already mentioned the standard-library, but of course much 
more important are the builtins. What's an int? Hell, I've been using 
the term integer for decades now, but actually don't really know if it 
really stands for "ganzzahl", the german word for what it is.

And once they learned the language from whatever course material you 
prepared for them, they'd take a look outside - and find *nothing*. No 
code snippet to re-use without error-prone rewriting. Lack of 
understanding because of unfamiliar words. And so on.

All this with a rather high cost on your side to prepare & and maintain 
a programming environment based upon a patched, potentially buggy 
interpreter + assorted course material.

I really think you should instead focus on creating an environtment 
similar to what squeak offers, something integrated with easy access to 
graphics and sounds, that create amazement in the children and makes 
them want to code to realize their dreams. And of course natively named 
libraries, plus course-material. I didn't measure it, but by 
guesstimation, the ratio between keywords & other literals in python 
should be around the range of 1/10.

Finally - well, if I'd were to learn italian, I'd rather not have my 
teacher translate all the nice italian words to german in my textbook... 
;) It *is*, after all, learning a language we are talking here. It is 
alien. Even python :)

Diez



More information about the Python-list mailing list