[Squeakland] Can EToys Teach Me to Program in Squeak?
leonel.morgado at gmail.com
Sun Jul 9 23:51:22 PDT 2006
I think exploring computer languages oriented at children can be a
great way of starting.
Unlike one may think, many of them are indeed powerful programming
languages, not just "toy" languages (in the sense of toy shovels or toy
Squeak can be interesting to you, I think, since it allows you to
initiate by linking visual behaviors with textual properties. However, when
I kept reading on about 2-D and 3-D manipulations and code and Legos, I
couldn't help but suggest that you have a look at the ToonTalk language
(www.toontalk.com), where programming is done entirely by manipulation of
objects (even addition is the action of dropping a number pad on top of
another - then a mouse with a big hammer comes along and bangs them into the
I think the best way to start, either with Squeak Etoys or with
ToonTalk, is to have a look at the tutorial samples and try to reproduce
If your worry is, "can I learn to program with these child-oriented
languages", I say: yes you can. You will find them powerful means. You'll
find the programming you learn to be quite different from that algebraic
format you mention, but if you so endeavour to proceed into it, you can
probably find it easier to grasp after having dealt with related techniques
in a different format.
Date: Sat, 8 Jul 2006 12:33:29 -0700
From: Greg Smith <brucegregory at earthlink.net>
Subject: [Squeakland] Can EToys Teach Me to Program in Squeak?
To: squeakland at squeakland.org
Message-ID: <D9AE23C0-856E-4C01-B389-F4A5F02D617C at earthlink.net>
Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed
My programming aspirations are really very specific in nature. I
have been a graphic artist and animator, using primarily the Mac
platform since 1985. Mostly, I am trying to find a solution that
helps a visual learner, like myself, get a grip on the thinking
required to engineer a graphically based interactive "building
system", like a Lego set with brains. I'll elaborate in a moment.
I actually have a little exposure to programming going back to
HyperCard in the early 90's and was actually paid by a local
university to write a simple and fun stack that taught children the
base 10 number system. I can tell you the entire learning process
was one of the biggest struggles of my computer life.
Whereas, absorbing the necessary knowledge found in complex 3D
graphic systems is quite quick and easy for me, because there is
instant visual confirmation of my efforts; trying to understand
systems by working with textual abstractions which define algorithmic
processes bounces off my brain and simply falls, lifelessly to the
floor. Though I can express myself and understand others using text
as found in the English language, the abbreviated, strange, math-like
structure of most "modern" computer languages simply does not make
sense to me. Not only so, but I find the experience totally
unrewarding. I believe it has to do with not having any visual
feedback during the process of creation. Everything is an
abstraction, like in math. I've learned, over the years, that my
mind does not function and learn like the minds of most "programmer
types". And I think this is true for most "artist types".
Still, I have some pretty interesting ideas for putting together a
very entertaining "building system" that could provide hours of
entertainment, as well as education for children and adults, alike,
that I would love to create via some kind of programming environment.
Imagine either a 2D grid, isometric grid or a 3D gridded surface that
is similar to a Lego table top building surface. It is equipped with
regular "plug-ins" or snap points just like a Lego system. Further
imagine a wonderful set of building parts, each one possessing
certain, rather simple properties, that, when snapped "magnetically"
or with a socket joint, to other similar pieces which possess
different, interesting properties, more complex behaviors become
As an example: one building piece has the simple ability to rotate
on the horizontal plane, while another can levitate, hover and move
any direction on the horizontal plane, while still another has the
ability to sprout Lego-legs and walk, both horizontally, up "walls"
and over "ceilings" . . . still another piece can act as a strong
magnet, repelling or attracting other certain pieces, and yet another
piece can levitate, hover and fly from place to place on the
"board". Even the board is "alive" and has regions of freedom and
constraint which need to be discovered . . . a Lego "terrain".
The user of such a building system would enjoy both the "tactile"
sensation of working with "real" Lego-like building blocks in
addition to watching the actions and reactions grow and develop by
combining different parts together, ultimately creating systems like
factories that accomplish a "work" task, games that reach certain
goals, or simulations that demonstrate various physical principles.
The system would be graphically rich and animated, probably best
constructed from ray-traced 3D models.
Quite unlimited in potential assemblies, yet only attainable by the
combining and interaction of the many talented "pieces" as they are
manipulated by the user through their world. A "living" Lego set
that demonstrates encapsulation of behaviors, inheritance and "object
oriented-like" construction processes, though I really don't
understand the depth of what you had in mind when you coined the
phrase. A more advanced building system or an "add-on" set of
functions would include a "part" construction set for the creation of
custom pieces with a wide variety of user defined abilities.
Actually, working with and interacting with this kind of tactile,
visual system is my idea of what programming should be. I know I
would take to a learning system like this as a duck to water. I
learn by analogy and constant reference to the "real" world. I also
learn by actually "working with my hands", not just my mind. And
there is constant feedback that displays results, instantly. Great
for kids of all ages!
So, you see, I have an idea for a very complex system which I am
quite helpless to create using any of the programming tools I have
ever been exposed to, nor would I really relish the idea of having to
create such a system using those kinds of abstract tools. I'm hoping
that Squeak might offer some hope toward helping me to realize this
More information about the Squeakland