From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 10d15b,97482af7429a6a62 X-Google-Attributes: gid10d15b,public X-Google-Thread: 103376,97482af7429a6a62 X-Google-Attributes: gid103376,public X-Google-Thread: 109fba,97482af7429a6a62 X-Google-Attributes: gid109fba,public From: matomira@di.epfl.ch (Fernando Mato Mira) Subject: Re: C++ not OOP? (Was: Language Efficiency Date: 1995/04/21 Message-ID: <3n8u8v$90a@disunms.epfl.ch>#1/1 X-Deja-AN: 101369051 distribution: world references: <3n3o9c$cud@atlantis.utmb.edu> <3n43p0$ehs@Starbase.NeoSoft.COM> <3n5oup$g2s@atlantis.utmb.edu> <3n5r92$95@Starbase.NeoSoft.COM> <3n60kc$gki@atlantis.utmb.edu> content-type: text/plain; charset=iso-8859-1 organization: Ecole Polytechnique Federale de Lausanne mime-version: 1.0 newsgroups: comp.lang.c++,comp.lang.ada,comp.lang.cobol Date: 1995-04-21T00:00:00+00:00 List-Id: In article <3n60kc$gki@atlantis.utmb.edu>, Curtis Bass writes: > says, "everything is an object" in Smalltalk -- there are no ^^^^^^^^^^^^^^^^^^^^^^^ You got it. This is the definition of pure OO. Even your control structures are objects. If you look at Lisp, for example, it is definitely not pure because you have normal non-virtual functions, control structures are not objects, etc. However, all functions (even `dirty ones') are objects. Methods are objects stored in a generic function. Methods contain specializer lists (objects), which contain references to classes (or `eql specializers). As you can see, in some sense the classes are `inside' the methods. Note that this does not happen in a language like C or Pascal. So, in some sense, it's a reverse world, and very object-oriented. Also, CLOS can be even considered `not really object-oriented' because of the lack of encapsulation. This has nothing to do with all the stuff above, but with the lack of a better module system. Cecil looks at object-orientedness very much like Ada, and CLOS, and has solved the encapsulation problem in a great way. You seem to be very concerned about philosophical issues, so if you haven't done it yet, I would recommend you to take a look at CLOS and Cecil; not necessarily to use them, but you should find it very stimulating and I'm sure it'll open your mind to whole new perspectives on OO.. Regards, PS: I'm not saying that Cecil is `pure'. But the same argument holds.. -- F.D. Mato Mira http://ligwww.epfl.ch/matomira.html Computer Graphics Lab matomira@epfl.ch EPFL FAX: +41 (21) 693-5328