Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!cs.utexas.edu!rice!uw-beaver!uw-june!ewan From: ewan@cs.washington.edu (Ewan Tempero) Newsgroups: comp.object Subject: Re: object-oriented this, that, and the other thing Message-ID: <10028@june.cs.washington.edu> Date: 1 Dec 89 21:12:04 GMT References: <2426@umbc3.UMBC.EDU> <190@ark1.nswc.navy.mil> <1561@novavax.UUCP> <21986@brunix.UUCP> Organization: U of Washington, Computer Science, Seattle Lines: 55 -Ted >me In article <21986@brunix.UUCP>, twl@brunix (Ted "Theodore" (W) Leung) writes: -In article <10013@june.cs.washington.edu> ewan@june.cs.washington.edu -(Ewan Tempero) writes: -> (a) Ways to create objects -> (b) Ways to manage objects -> (c) no non-object constucts [ill-defined I know, maybe I'll -> say something later] -So what makes a language that supports these features any different -from a language that is based purely on abstract data types? This is a good question but I'm going to wimp out and not answer it directly (for now, anyway). My "definition" was only intended for a discussion on whether "classes" were required for OO languages, that is, it was to be taken in the context of OO languages only (afterall, I didn't define what an object was so that's the only context that makes sense...if sense is to be made from what I wrote). Which brings me to:- -In the -absence of code-sharing/grouping mechanisms, what distinguishes an -object from an ADT? The point I was trying to make, was that there is nothing inherent in objects that relates to code-sharing mechanisms. I read somewhere that it would be possible to put environment support on top of Modula-2 (or was it Ada?) that would allow things of the form NewModule.NewFunction = OldModule.OldFunction + stuff [this is very hazy and I don't have a reference for it. Does anyone?]. This is essentially what Simula does. As I have already said, there are languages that I think anyone would say provide objects and ways to manipulate them, but don't have code-sharing. They are also based purely on ADTs (so OO implies ADTs, at least). If you are going to insist that code-sharing mechanisms must be present then I think "object" is a misnomer. -This opens up the age old question of "what is an -object", which will probably cause this group to go into conniptions. :-) But if we can't discuss that here, where do we? :-) What I'm trying to do, is to answer exactly this question, without the baggage of code sharing (or concurrency, or anythings else). I think the concept of "object" exists independently and, once we have a better understanding of what this concept is, we can worry about the other stuff. -I don't think that labelling all the features with the right -object-oriented whatever is what's needed. I think that we need to -get good definitions of what the essential language elements are and -try to understand their interactions in the language design space. ...ahem. Yes, I agree. You said it better... --ewan Brought to you by Super Global Mega Corp .com