[Squeakland] Logo vs. Squeak
Alan.Kay at squeakland.org
Fri Aug 8 09:29:47 PDT 2003
Hi Diego and folks --
There is no "versus" here. Logo is great, and it was the inspiration
for much of what we've done over the years. In fact, I've been
encouraging the Logo folks at MIT -- Seymour Papert and Mitchel
Resnick have been long time colleagues and advisors -- to actually
put a Logo on top of Squeak -- pretty much everything is already
there except the syntax and UI.
Before I mention a few differences in point of view, let me say that
the main aim here is to teach children real math and real science,
and this can be done just fine with Logo. However, with both Logo and
Squeak it really helps for the teachers to already understand real
math and real science beforehand, or to really try to learn the real
subjects and processes along with the children. (In the United
States, most elementary school teachers are not fluent in real math
and real science, and the official curricula are not about the real
subjects, but about "rules for calculation" instead of real math, and
"science facts to memorize" instead real science.)
There have been many variants of Logo, all with a fairly similar
syntax. There have been several versions that are more or less object
oriented, with a number of different syntaxes to deal with addressing
messages or commands to different objects. The more recent versions
of Logo have sprites with costumes, and these are basically objects.
In the late sixties, influenced by Logo and by some previous
object-oriented work I'd done, I started thinking about
object-oriented languages for children. One simplifying idea was to
have everything the child encounted be an object, so there was only
one coherent world view to understand and use and just one way to get
objects to do things.
In Squeak, this simplification goes even further, so that every
object is also "a turtle with a costume" -- (make a script in Squeak,
get its halo, and look at its viewer. You will seen "forward" and
"turn". Look at the "pen" category, and you will see that the script
itself has a pen. Thus you can easily make a script for the script
that will make it move in a circle!) The basic ideas here are
simplicity, uniformity, a glimpse into the metanature of computing,
Another noticable difference in Squeak is the tiles UI. This has
turned out to be great for beginners of all ages. It really
encourages rapid experimentation early one without worries about
syntax, spelling, etc.
A current "drawback" in the Squeak etoys is that they were an
experiment aimed at a particular age group -- 9 to 12 year olds --
for particular purposes -- about 50 etoys in math and science. The
good news is that, in this range, they really work extremely well,
and are learned by virtually all children and adults who try them.
That was the experiment. The downside is that there is not a lot of
extension in the current system, and it gets awkward for older
children and experts.
For the last several years, we've been working on a version of this
that starts out as easy to use as the Squeak etoys but is much more
graceful in how it expands as a learner gets more fluent. We will put
this new version out as an experiment this Fall for those who are
interested. This version can carry multiple syntaxes, and it's likely
that one of them will be a variant of Logo -- that would be fine with
us -- this would make a large world of Logo documentation available
Just a pause for a thought here ... Neither the current Squeak syntax
nor the Logo syntaxes are ideal for children and other end users. We
really should be thinking about what improvements in UI should be
made to help them. Andreas Raab has pointed out that the syntax of a
programming language is actually part of its user interface -- and I
think this is a really important observation. If we look at the
difficulties of having children understand (say) parameter passing in
Logo, we should be thinking about how it should look.
(It should probably look more like explict assignments to the
internal variables of the procedure than the blind magic that now
exists. I left parameters out in the first version of etoys for this
very reason. It is much easier for the children to make exlicit
assignments to the local instance variables in the parent object
before calling the procedure. But this doesn't work for recursion, so
what should probably be in there is a tile that bundles up the
assignments and the call. Etc.)
"Functions" and things like functions are a powerful idea. So we
should be thinking about how to make this stuff better, not just how
to make use of it or to ignore what the children have difficulty
with. It's not that difficult to make languages and UIs for different
ages and sophistications, but it is quite difficult to make the
graceful blend and path from the simpler to the more sophisticated.
In the sixties, there were lots of computers and lots of different
computer languages. Most practitioners back then quickly got
"multilingual" and learned to program in many languages. Nowadays,
different syntaxs seem to be a much greater barrier, and it seems
worthwhile to cater a little more to this barrier in order to try to
teach the underlying ideas.
At 7:01 AM -0500 8/8/03, <diegogomezdeck at consultar.com> wrote:
>Preparing the content in Spanish for Small-Land I found one question I'm
>not able to respond.
> "Why use Squeak instead of Logo?"
>I know almost nothing about Logo, but from my (limited) point of view I
>think the key difference is the Object Orientation.
>The Object paradigm is, imho, a better way to describe the reality than
>the "Structured way" used by Logo. Also I can find some roots in
>some "knowledge representation" theories (the pair object-subject).
>The "dark" point with my thought is I'm not able to see if this argument is
>valid for teachers/educators.
>I'd like to hear your opinions.
>Diego Gomez Deck
>PS: Anyone knows the Papert's feeling about Squeak? I guess it's good
>(based on the Squeaker movie :))
>Squeakland mailing list
>Squeakland at squeakland.org
More information about the Squeakland