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, etc.
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 to all.
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.
Cheers,
Alan
At 7:01 AM -0500 8/8/03, diegogomezdeck@consultar.com wrote:
Hi guys...
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 http://www.small-land.org
PS: Anyone knows the Papert's feeling about Squeak? I guess it's good (based on the Squeaker movie :))
Squeakland mailing list Squeakland@squeakland.org http://squeakland.org/mailman/listinfo/squeakland
--