[self-interest] Re: Object identity (Was: No Subject)

Reinaldo Silveira-local silveira at lsi.usp.br
Tue Jun 8 14:11:50 UTC 1999

Douglas Atique wrote:

> What an interesting discussion... I hope to give a contribution to it. Please see my
> comments below.
> Regards,
> Douglas


> I would say it is not so complex. It's just that people are so used to having things
> with names that they don't notice that the name is not so essential, rather it is a
> way of reaching an object. If you know about the Unix filesystem you can think about
> the files as "objects". There files exist on their own, but they must be referred to
> by at least one directory, otherwise they are unreachable and nobody can get them.
> If you create hard links, you can have more than one reference to the same file. So
> you give the same file different names. Understood? Now substitute "object" for
> "file" in the sentence above and see my point of view on all this naming stuff. More
> on this below...


> Perhaps you haven't thought about the difference between a name and an identity.
> Every object MUST have an identity, otherwise it gets useless for other objects.
> This identity can be present in an implementation-defined ObjectID (that you never
> care about when programming, and it is not uniquely assigned across different
> sessions) or the address of the object memory in the heap. But it is always there,
> even though in Self you might not have access to it. Now the name is something else,
> a kind of identity that is visible at the Self level. But it takes the form of an
> object tree. You can see that this identity is relative to the tree you choose and
> it can be changed if the implementation changes the root. With the present VM there
> is an object that is known as the lobby, which is the root of all names. When you
> create any object or write Self code you have to take account of this object as
> everything on the system is hanging from it. All the resources of the system are
> accessible as objects and an object is only accessible because it is referenced
> somehow by the lobby. Also, the lobby is created by the VM, it already exists when
> you start Self, even in an empty world. Try to load the empty world (host$
> Self<Enter>) and evaluate an expression on the prompt that appears. You are sending
> a message to the lobby. But you can't call it lobby, like this:
> lobby help
> because the name lobby doesn't exist. But that object is the root, anything you type
> at the prompt will be evaluated in the context of that object (I mean, as a message
> sent to it). Who made it that way? The VM implementation, the language philosophy,
> etc. Anyway, it is there and you have to know it to start building a big world like
> the one you might be running on your SPARC. How have the Self Group come to that
> world? Just so. I, and more people with whom I have already "talked", believe that
> in proper time, most operating systems will change the notion of filesystem for this
> of an object tree. Solaris (I don't work for Sun) already does something interesting
> to determine the file type by its contents. It displays an appropriate icon for
> every type of file it knows about. I guess it parses the file contents, or its
> beginning, but regardless of the file extension ( I have tried it) the CDE displays
> the correct icon. That is the way to OO.

Very good explanation!

Thanx Douglas.



eGroups.com home: http://www.egroups.com/group/self-interest
http://www.egroups.com - Simplifying group communications

More information about the Self-interest mailing list