[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: SCOOP problems
> Date: 1 Jun 89 12:05:26 GMT
> From: "Donal O'Mahony - OMAHONY@cs.tcd.ie" <mcvax!ukc!tcdcs!csvax1!omahony@uunet.uu.net>
> Subject: SCOOPS problems
> Message-Id: <46261@csvax1.cs.tcd.ie>
>
> Having used X-Lisp for a while, I moved over to TI-Scoops. There are
> two very annoying defects in that implementation of OOP.
>
> 1) SCOOPS objects don't have a SELF instance variable. I had to get
> around this by redefininng SEND to do a FLUID-LET on the symbol
> SELF before sending the message, but this is both ugly and slow.
>
> 2) There is no SEND-SUPER primitive - this means that super-classes
> methods must be completely overridden, rather than extended which
> removes a lot of the benefits of having inheritance in the first
> place.
>
>
> A slightly less annoying feature is that the arguments to SEND
> are evaluated in the environment of the object begin sent-to
> rather than in the calling environment i.e.
> (let ((a 1))
> (send an-object (+ a 1)))
> will bomb-out due to 'a' not being defined in an-object's environment.
>
> Has anybody got good solutions to the above?
If simple generic dispatch would suffice, you could use a non object
oriented dialect which supports generic procedures, like ADA or T. On
the other hand, Oaklisp purports to be a solution. As you may have
heard, Oaklisp claims to retain Scheme's lexical scoping while
incorporating so-called object-oriented facilities, allegedly including
the apparently desirable ``features'' described above.