[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Invitation to visit Disney Imagineering

> I think a. is something that the Squeak people are diligently working on 
> already.  As for b., I suspect that's going to be a niche aspect for Squeak, 
> as most teachers below university level are unlikely to try to teach OO 
> programming to their students.  Still, it's something to keep in mind as a 
> future direction to go.

I think OO programming has every potential to be as good a 
beginning paradigm as anything, but there's little background in 
treating it as such.  Objects are a good metaphor, but if they are 
one among a number of metaphors it's too complicated.  An impure 
OO language (like C++ or Java) is hard because of this -- too many 
concepts -- but Smalltalk could be much better.  This was very 
much something that was considered when Smalltalk was created, 
and continues to be a consideration.

But I've not taught much programming to children, so I wouldn't 
know where to go with it.

> The middle ground is where I think our efforts should go.  Helping to test and 
> if necessary, to design, a simplified user interface to make Squeak useful as 
> an authoring tool for education is where our efforts could have the best 
> effect.  I notice the Squeak web pages talk about a new interface called 
> "Morphic."  Ian, do you know anything about this?

Morphic *is* the HyperStudio-ish part of Squeak.  It's a system of 
widgets that you create visually (i.e., concretely), edit, modify, and 
program all while they are live.  It's really neat, but poorly 
documented and still in fluxuation.  I don't understand a lot of it 
(though playing with it is fun).  

In many ways Morphic isn't OO in the same way Smalltalk is.  It 
comes from Self, which was a prototype-based language (as 
opposed to class-based).  Now, it lives in a class-based 
environment, but it acts weird and tracking down how it works 
means going through a web of method calls.  Or maybe like 
pealing an onion.  Anyway, that's my rationalization for why I 
haven't come to understand it terribly well, but then maybe it's just 
because I haven't tried enough.

One of the neat things about Morphic objects is the cloning idea 
(taken from Self), where you can create lots of things just by 
copying them -- from things you made before, a set of things 
waiting to be copied, or from the very interface you are using.  So 
part of setting up a good learning environment is a matter of making 
a set of useful Morphic objects and putting them together in a 
toolbox.  Doing it isn't too hard, just figuring out what the most 
useful kinds of objects are so that everything important is there, but 
not overwhelming.

Ian Bicking <bickiia@earlham.edu>