is squeak really object oriented ?

Alan Kay Alan.Kay at
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 
reading BTW).

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 
next version.



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 mailing list