Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!sdd.hp.com!spool.mu.edu!uunet!mcsun!ukc!dcl-cs!aber-cs!athene!pcg From: pcg@cs.aber.ac.uk (Piercarlo Grandi) Newsgroups: comp.object Subject: Re: The Emperor Strikes Back Message-ID: Date: 1 Mar 91 00:11:21 GMT References: <3351@sequent.cs.qmw.ac.uk> <1991Feb26.191336.1947@m.cs.uiuc.edu> Sender: pcg@aber-cs.UUCP Organization: Coleg Prifysgol Cymru Lines: 41 Nntp-Posting-Host: teachb In-reply-to: pcg@cs.aber.ac.uk's message of 28 Feb 91 21:42:44 GMT On 28 Feb 91 21:42:44 GMT, pcg@cs.aber.ac.uk (myself) wrote: pcg> You can still build OO programs, that is those built according to pcg> the OO decomposition paradigm, even if you don't have dynamic pcg> overloading, just as if you don't have multiple overloading, just pcg> as if you don't have arbitrary mix and match of interfaces or pcg> implementations, just as if you don't have full latent types. For example, it is IMNHO obvious that there are important applications in which you *must* be able to change dynamically the type of a value, and some in which you must be change to change dynamically the *definition* of the type of a value. Self certainly allows the former, and I am not sure that it allows the latter (other languages do). Now, a fully featured OO system *must* have them, because some applications require these facilities, and OO programming is a fully general style of programming, isn't it? So is Self the "most" OO language? pcg> If each of these is missing you cannot tackle some class of OO pcg> applications, but the lack of any or all of these does not mean pcg> that you are not doing OO programming. My point, and I want to insist strongly, is that dynamic overloading and the other features dont' define OO programming, they define its range of *applicability* for a particular language/implementation. Again it may be argued that for example without the range of applicability of the OO decomposition paradigm is so limited or awkward that de facto it is essential. I would disagree with such a position, but we lack statistics or any evidence on which classes of applications can be more naturally expressed if dynamic overloading, or multiple overloading, or multiple inheritance, or general interface and implementation mix and match, or unbounded latent types, or polymorphism, or dynamic type change, or dynamic type definition change are available. -- Piercarlo Grandi | ARPA: pcg%uk.ac.aber.cs@nsfnet-relay.ac.uk Dept of CS, UCW Aberystwyth | UUCP: ...!mcsun!ukc!aber-cs!pcg Penglais, Aberystwyth SY23 3BZ, UK | INET: pcg@cs.aber.ac.uk