<html>
<body>
At 01:23 PM 12/19/2006, Andrew Clunis wrote:<br>
<blockquote type=cite class=cite cite="">For the really early years,
programming should probably be squeak's<br>
job. :)<br>
</blockquote><br>
I think of a programming language as partly a UI design and partly as a
semantic design. Different ages of children need different kinds of
things in their UIs, and this includes what a program looks like. I think
of the surface syntax and the appearance of a language as being derived
from (that is, a <i>view</i> of) an abstract syntax that expresses and
connects to the semantics. This allows the possibility of having a number
of surface appearances for different purposes (such as dealing with the
different needs of children at different ages).<br><br>
OLPC is being set up as a Python machine, not a Squeak machine (and that
is fine with me). If so, then I think a UI for elementary aged children
that allows Logo-like and Etoy-like scripting and "Model T"
control of media objects is very important. Right now Etoys is serving as
this UI and functionality, but it is drawing its view of scripting from
Squeak Smalltalk, not Python. A more ideal direction and goal would be to
think of Python semantics as the eventual target, and think about what
scripting for a 7 year might look like (it will be different in important
respects from the current `Python conventions).<br><br>
I'm just trying to nudge things towards thinking about "Children
First!", so that we can gradually get to an environment that is both
rich and explorable by most of the ages of children we are trying to
serve.<br><br>
Cheers,<br><br>
Alan<br><br>
---------------<br>
At 01:23 PM 12/19/2006, Andrew Clunis wrote:<br>
<blockquote type=cite class=cite cite="">-----BEGIN PGP SIGNED
MESSAGE-----<br>
Hash: SHA1<br><br>
On Tue, Dec 19, 2006 at 08:41:12AM -0800, Alan Kay wrote:<br>
> Hi Andrew --<br>
> <br>
> I guess I agree with what you say about Python and its structure,
but <br>
> I was thinking much more about what the children see, not so much
the <br>
> developers.<br><br>
That brings up another problem. I myself was a child not so long
ago,<br>
and as I started to become interested in computer programming and<br>
software development, it was important to me that I was "on the
same<br>
level" as all other desktop application developers (I admit that I
was<br>
a bit of a weirdo, though).<br><br>
Later on, in Grade 11 "Computer Engineering" class, we
received<br>
instruction on "Turing", a toy language with a toy
interpreter. It was<br>
proprietary software, only ran on Microsoft platforms, and couldn't<br>
interact much with the host platform (beyond poking bits on I/O
ports).<br><br>
What I mean to say is, if these mechanisms are not the true native
face<br>
of the system, they will never be more than a toy (a notable
consequence<br>
of this is that developers won't eat their own dog food).<br>
> <br>
> Since this is a children's machine, important aspects of it should
be <br>
> deconstructable, and in terms that are as simple, understandable and
<br>
> useable as possible. So, if the child "pops the hood" on
some <br>
> interesting object they've been playing with, they should see (I
<br>
> claim) a "Model T" version of the properties and behavior
rather than <br>
> the "fuel injected Ferrari" that might be underneath. And
they should <br>
> be able to write useful scripts in those terms.<br><br>
Why not just expose the same API for everybody? No one is obliged
to<br>
use the more complicated functions if they don't need them.
Besides,<br>
keeping beginner hackers in mind is a good way to keep our APIs sane
and<br>
pretty.<br>
> <br>
> For example, the movie player can be abstracted as the very same
kind <br>
> of animations that the child can make and script, and the movie
<br>
> player UI can be constructed in those terms. Much can be done with
<br>
> such an approach, and the special stuff that is being done wrt
movies <br>
> (MPEG decoding, file reading, other optimizations) can be left until
later.<br><br>
It would be awesome if Develop activity did attempt to expose some
of<br>
as "Supplies" in a graphical fashion; giving users a graphical
list of<br>
tools to select from (that would equate to Python packages).<br>
Unfortunately, we can't get anything more granular than that.<br><br>
> And, e.g. any objects that have graphic properties can be presented
<br>
> in as similar ways as possible, regardless of how they were actually
<br>
> written underneath ...<br>
> <br>
> And, I think that the wrappings and views shown older children can
<br>
> look more like Python than those suitable for the younger ones
...<br><br>
For the really early years, programming should probably be squeak's<br>
job. :)<br><br>
> <br>
> Etc.<br>
> <br>
> Cheers,<br>
> <br>
> Alan<br>
><br><br>
- --<br>
Regards,<br>
Andrew Clunis<br><br>
-----BEGIN PGP SIGNATURE-----<br>
Version: GnuPG v1.4.3 (GNU/Linux)<br><br>
iD8DBQFFiFhRALkUMXSNow8RAizjAKCmgXuwmHVzC6W6f8ZmwWLXxNpewACgmB4p<br>
a1vkeWKKotnHI8LqJIsNup0=<br>
=YN4W<br>
-----END PGP SIGNATURE-----</blockquote></body>
</html>