[Squeakland] Can EToys Teach Me to Program in Squeak?
Greg Smith
brucegregory at earthlink.net
Sat Jul 8 12:33:29 PDT 2006
Alan:
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
possible.
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
goal.
Sincerely,
Greg Smith
More information about the Squeakland
mailing list