<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 &quot;Model T&quot;
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 &quot;Children
First!&quot;, 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>
&gt; Hi Andrew --<br>
&gt; <br>
&gt; I guess I agree with what you say about Python and its structure,
but <br>
&gt; I was thinking much more about what the children see, not so much
the <br>
&gt; developers.<br><br>
That brings up another problem.&nbsp; 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 &quot;on the
same<br>
level&quot; 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 &quot;Computer Engineering&quot; class, we
received<br>
instruction on &quot;Turing&quot;, a toy language with a toy
interpreter.&nbsp; 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>
&gt; <br>
&gt; Since this is a children's machine, important aspects of it should
be <br>
&gt; deconstructable, and in terms that are as simple, understandable and
<br>
&gt; useable as possible. So, if the child &quot;pops the hood&quot; on
some <br>
&gt; interesting object they've been playing with, they should see (I
<br>
&gt; claim) a &quot;Model T&quot; version of the properties and behavior
rather than <br>
&gt; the &quot;fuel injected Ferrari&quot; that might be underneath. And
they should <br>
&gt; be able to write useful scripts in those terms.<br><br>
Why not just expose the same API for everybody?&nbsp; No one is obliged
to<br>
use the more complicated functions if they don't need them.&nbsp;
Besides,<br>
keeping beginner hackers in mind is a good way to keep our APIs sane
and<br>
pretty.<br>
&gt; <br>
&gt; For example, the movie player can be abstracted as the very same
kind <br>
&gt; of animations that the child can make and script, and the movie
<br>
&gt; player UI can be constructed in those terms. Much can be done with
<br>
&gt; such an approach, and the special stuff that is being done wrt
movies <br>
&gt; (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 &quot;Supplies&quot; 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>
&gt; And, e.g. any objects that have graphic properties can be presented
<br>
&gt; in as similar ways as possible, regardless of how they were actually
<br>
&gt; written underneath ...<br>
&gt; <br>
&gt; And, I think that the wrappings and views shown older children can
<br>
&gt; 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>
&gt; <br>
&gt; Etc.<br>
&gt; <br>
&gt; Cheers,<br>
&gt; <br>
&gt; Alan<br>
&gt;<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>