is squeak really object oriented ?
Alan.Kay at squeakland.org
Fri May 23 15:58:16 UTC 2003
Thanks for the great comment.
It's not that strange a question (and I give this reply without
looking at any of the others).
The etoys part of Squeak for children does just about everything with
tangible objects that automatically have graphical representations.
One of the original motivations for the models, views and controller
idea (that IMO never got well done) was to be able to automatically
produce a default graphical interface for any object (and Steve Putz
at PARC actually did a version of this but it didn't stick). These
ideas live on in the "Naked Objects" book by Richard Pawson (worth
Randy Smith and the SELF folks did the next round of this at Sun
(using the first version of Morphic by John Maloney and RS). There
were many great ideas in this way of looking at UI.
Dan Ingalls' and Scott Wallace's FABRIK (in the 80s at Apple) was a
direct manipulation of objects system in Smalltalk. Ned Konz'
Connectors stuff today is very motivating along these lines, and
could be make into such a system. Morphic wrappers by our friends in
South America is another way to think about completely tangible
objects in Squeak.
Your list of numbers and any other objects that you want to insert
directly into source code was a feature of my thesis language of the
60s (FLEX), but it never quite got into Smalltalk, I'm not sure why
-- it's the obvious way to deal with literals in code in a system
that has many different kinds of things. Something closer to this is
in the Etoys and we definitely plan to have the whole thing in the
At 9:55 PM +0200 5/22/03, jan ziak wrote:
>hi. I've got a strange question: is squeak really an object oriented system
>or it only claims it is? the point of the question is that instead of working
>with objects, i work mostly with text. the objects are in fact only in my
>head, as a consequence of reading sources of objects which are in the
>browser. but the objects are not tangible, i cannot see them. for example,
>let's take an instance of an OrderedCollection: this object is in fact not an
>object but a textual representation of it, I cannot see the collection on my
>workspace and must simulate all its behavior on my own and imagine it in my
>another problem is that when i am writing the source code of an object, i do
>not work with objects again. i only manipulate text and imagine those
>objects, but the objects are not on my workspace. i think that object
>oriented programming should look like working with objects and not with text.
>so, is squeak for work with objects or with text ?
>another example: suppose that, after 3 hours of hard experimentation, i have
>finally obtained a list of numbers which contain the results of my
>experiments. the numbers are of great signifance to me because i am totally
>unable to replicate them (because i do not preciselly remember how i obtained
>them for example). let the numbers be concentrated in an instance of
>OrderedCollection. so i have an ordered collection instance and numbers in
>it. as next, i want to incorporate my numeric list in a source code of some
>class. wouldn't it be logical to simply insert a reference to my list into
>the source code in places where i want to use my list object? in think that
>the squeak system answers: "no it wouldn't. you must make a textual
>representation of your object and ...".
>so, are we working with objects or just manipulating text ?
>giving objects names and them using those names is just one way of how to
>interconnect those objects. i want to work with objects not with their names,
>so why should i give names to objects anyway.
More information about the Squeak-dev