[Edu-sig] (no subject)

Jason Cunliffe jasonic@nomadicsltd.com
Sat, 16 Sep 2000 00:28:33 -0400


Hi

Yes very interesting reply.. here's my return take..

> >>This is the same argument I make for why a 12 year-old could get a great
> >>intro to programming using Flash5 or LegoMindstorms.
>
> >Certainly these could be good learning environments.
>
> An essential difference, IMO, being that Python is a real and respected
and
> fully grown-up programming language.
>
> Not just an "environment".
>
> My take is that for some cross-section of the potential audience, and from
a
> surprisingly early age,  that's an essential difference and attraction.

Ok sure I agree that Python has respect and maturity..no problem there.

But I am not convinced that the others don't also qualify , merely by
different criteria:

Mindstorms has some very good programming heritage if you consider the
pbForth stuff and the keen minds behind all that.
Besides, how many programmers have not been profoundly influenced by playing
with even regular plastic Lego as kids, if they thought about it honestly.
Who hasn't after all?

Flash5 has some pretty serious scripting added to the new version.
Have you looked at it?
But more importantly, the program itself embodies a  lot of very important
object orientation ideas. Some are invisible magical, some are explicit.

The design logic is everywhere, you cannot touch this program, or make it do
stuff without this implicit structural mechanics from getting you into a way
of thinking very quickly. But it is one which will carry well, and sit quite
comfortably with a lot that is outside this glitzy box. It has taken quite a
long development  history road to get here, to this point of usefulness,
power and simplicity. A lot of software ideas, metaphors, interfaces have
gone before. And I think the proof is perhaps in the doing. Play around with
it a while and tell me I am wrong.

but maybe it will make you nuts
- not your style
- perhaps because you are way too sophisticated already
- carrying other paradigm baggage ?
- don't 'get it' yet [no insult intended, but it is more than it seems at
first glance or reading about it, it's different]
- or simply are not motivated by interactive multimedia
- <insert any other good reasons>
..Fair enough.

What I think is very significant is that the application allows one to
create 'symbols' [classes] which are multi-layered multi-framed movies.
These are stored in a library and then instances are created when they are
placed on the 'stage'.
They may be nested inside each other and so on.
Scripting allows one to send messages and detect events across the object
hierarchy.
If you don't get it right it won't work.
It teaches precision and above all encourages and rewards reuse of modular
objects and instances.

But where it can send one's head spinning in new dimensions is that each the
idea of time and sequence is embedded through everything one does. Every
'movie clip' symbol one creates has its own timeline. Embed this in a single
keyframe of a another parent clip, and you have some very sophisticated
behaviors emerging. There is nothing else I can think of which has this kind
of thinking so accessible, or  which let one start exploring the
implications of nested objects each with their own behaviors and events so
richly.

To get control one has to start learning scripting very quickly.. This is
why I think it is great for kids.
Unlike almost every other programming language out there you do not have to
wade through reams of object code to handle basic interface gui window stuff
etc. Why should you? But if you wanted to create your own popup menu,
combolistbox etc, you can  - and it rapidly makes one appreciate how many
little details there are even in a simple one. And especially when you want
to generalize it.

Check out the examples people have posted at www.flashkit.com under 'movies'
or 'tutorials etc, and you will see lots of people sharing widgets, parts,
ideas and well illustrated tutorials, ramping up every month towards a kind
of traveling gui interactive bazaar. Very impressive grass roots community
learning in action.

Imagine a classroom doing it with some guidance.
Imagine this connected to a Zope server and some kids on the other side of
the room hacking python External Methods to drive these cool front end
interfaces to handle data i/o so they change dynamically..!

The arty ones can lend their talents to look and feel.style.
The logical ones can help structure and formalize - how are these parts
going to be able to work together?
The geeky smarter python ones can do their magic..
The visionaries can dream up outrageous projects to challenge the rest..

What is interesting about flash is it is just like Python contribution sites
or Perl or whatever, except that you can start by seeing and playing with
the parts. Then you decide if it is what you want download and take it apart
to see how it was all done. This has to be a good thing for kids.

It lets one focus with the learning the basic relationships of these object.
After one has stretched that to its conclusions, kids may indeed want to go
further an take the whole thing apart, touch all the minutiae of interfaces
and gui.. They would be well prepared already I hope.


> To me, its Python or Java (JPython?), at least past elementary school.
>
> Saying which of course just reflects my  own taste and sensibilities to
some
> extent - since certainly
> alot has been done with Scheme. Just can't see it myself.
>
> And just to re-iterate this sensibilty,  I don't believe manipulating
> (scripting) someone else's
> multi-megabyte  graphically sophisticated app is programming in a very
> meaningful sense,
> or whether it is or isn't (maybe that its own thread), not the attraction
to
> kids one might think.

Well one could use win32com and the FlashObject dll by YiYi Sun: It's only
108kb
http://www.geocities.com/yiyisun/bukoo/

Your argument really bothers me because to my mind you\ are denying the
reality of almost every programming environment.
I argue that we work on modern computers on top a vast pile of complex
interrelated functions, libraries, dependencies and multi-megabyte
applications. From the operating system all the way through - forever. Even
blessed Python. Look when you download some this big thing, you uncompress
it and out come spilling all those 'magic' files and folders. And every
other application is the same. short of the most stripped down cgipython.exe
or some such, there is not much difference.

Python represents  the collaborate effort of many smart people over 10
years. What's wrong with that? nothing..
Flash or Mindstorms, or whatever,  are the same, though arguably in varying
degrees of quality or concerted open group collaboration.

> Why programmers become programmers, it seems to me, is to become capable
of
> drawing on a blank slate.

What is the blank slate.. no keyboard, noOS, no mouse, no printer, no
floppy, no ethernet....? Linux 1991 ?
C'mon it's a monumental group effort which has gotten us to where we are,
[even if it is all wrong as Don Norman clams in 'The Invisible Computer']..
it works but it's always all fragile as all hell.

Create a semantic digital sandbox, which is large and stable enough like
Python, and more wonders can and do emerge.
But let's not ever lose sight of what the illusion is, or what a huge thing
base it sits upon. The advantage of an application like Flash for kids is
that itself is well defined and stable. It has determined documented
limits.. what can you do within it. when you have pushed that to its limits
move on to something better.

So why am I ranting on and on here in Python Edu-Sig list about Flash?

Because what is missing and what I really wish is for a Python-based Flash.
It may not be necessary, maybe just showing how to interface the real world
available tools like Python and Flash etc is the best way to teach kids.

Maybe create a sort of super-Alice.
Is this not already happening..?
What can Alice learn from Flash and vice-versa?
What about scripting Blender..?

Python __is__ a nicer language. Has a great community etc. is richer, more
mature..
But try doing what Flash does in Python is a hell of challenge.
It would be the killer demo. Maybe with Boa to help and some serious
training months working playing Flash to see what it does do well.
...hmm anyone interested?

kind regards
- Jason