Renaming identifiers & debugging
Diez B. Roggisch
deets at nospam.web.de
Fri Feb 26 01:05:49 CET 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 :)
More information about the Python-list