[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.