Selfish

Difference between version 27 and 29 - Previous - Next
'''[http://people.fishpool.fi/~setok/proj/Selfish/%|%Selfish] (404)''' is a prototype-based [object orientation%|%object] system.
Archived at [https://web.archive.org/web/20151009121602/http://people.fishpool.fi/~setok/proj/Selfish/].

** Response **

[MJ]:   Really nice work, after playing with it a bit, it really shows the
power and ease of prototype based OO. However a [[super]] call is missing; this
will make inheritance less useful than it can be. See also [SELF extension].



** Description **

[MJ]: Is this a bug in slot lookup?

======none
% set a [selfish::baseObject clone]
::selfish::0
% ::selfish::slot ::selfish::baseObject test {} {puts test}
foo
% $a test
SelfishError exception thrown: Could not find slot test
======

[MJ]:  To answer my own question, this is not a bug, but a different way of
cloning from [Self Programming Language%|%Self]. In an Prototype based OO language there are two distinct
ways of cloning a prototype
[http://en.wikipedia.org/wiki/Prototype-based_programming]. One way is cloning
with delegation (like [Self Programming Language%|%Self]) the other way is concatinative prototyping (What
[Selfish], [neo], [eos] seem to be using). With concatenative cloning, there is
no relation after cloning between the prototype and the cloned object. 


[RLH]:  Wasn't there more here before?

[MS]: yes - [MJ]'s code, I think. Now at [SELF extension].

[MJ]: I moved it indeed as it felt like I was hijacking this page, and the code
fit better on the [SELF extension] page.

<<discussion>>

[tb]: It seems to me that the page [[SELF]] was hijacked by TclOO. I remember a
different content. Is it lost?

[AM] No, the code is still there, but the page starts with the TclOO command
[self - TclOO%|%self], look further down for the original discussion on the language and the
emulation by [MJ].

[EMJ] This has now been sorted (I hope), [MJ]'s code is on the [SELF extension] page.

<<categories>> Object Orientation | Package