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=0.6 required=5.0 tests=BAYES_20,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 109fba,97482af7429a6a62 X-Google-Attributes: gid109fba,public X-Google-Thread: 103376,97482af7429a6a62 X-Google-Attributes: gid103376,public X-Google-Thread: 10d15b,97482af7429a6a62 X-Google-Attributes: gid10d15b,public From: rmartin@rcmcon.com (Robert Martin) Subject: Re: C++ not OOP? (Was: Language Efficiency Date: 1995/04/21 Message-ID: <1995Apr21.181149.6783@rcmcon.com>#1/1 X-Deja-AN: 101369034 references: <3mbmd5$s06@icebox.mfltd.co.uk> <3mcfbf$psl@acmez.gatech.edu> <3mgnkc$e3j@atlantis.utmb.edu> <1995Apr13.180317.3308@rcmcon.com> <3muaif$46u@atlantis.utmb.edu> organization: R. C. M. Consulting Inc. 708-918-1004 newsgroups: comp.lang.c++,comp.lang.ada,comp.lang.cobol Date: 1995-04-21T00:00:00+00:00 List-Id: rmartin said: >> Would that 'twere so. Actually, all OOPLs are conducive to the >> implementation of structured programs. This must be so. Consider >> that a structure program is an amalgam of data structures and >> functions. In an OOPL we could create a single object which contains >> all these data structures and functions. Voila, a structured program >> implemented in a OOPL. Curtis Bass writes: >I maintain that this is STILL not a "strictly procedural" model, >but is rather a very BAD OO model. Now wait. I can implement a structured design in both C and Smalltalk. The semantics of the design will be identical in both languages. Are you saying that some mysterious attribute of the language (which you call "purity) transforms this design from "structured" to "object oriented" just because it happens to be implemented in Smalltalk? If so, then I submit that this mysterious attribute is utterly useless since it cannot disambiguate a structure design from an object oriented design. >The bottom line is that all that your example illustrates is bad OO >programming practice It illustrates more than that. It illustrates that the attribute that you call "purity" does not enforce object oriented design, or good OO programming practice. So, of what value is this attribute? What does this attribute help us to do? >The term DOES have useful a definition, and I have provided >one that's perfectly valid. Validity is not the same as usefulness. Defining a "pure OOPL" as "a language in which everything is an object" is perfectly valid, but not very useful. The question that comes to mind is: "so what?" >As far as what I am saying" is concerned, what I am saying is >simply this: C++ IS Object-Oriented, but not in the "pure" sense. >Smalltalk IS "purely" Object-Oriented. You can write strictly >procedural code in C++, You CANNOT in Smalltalk -- the best >you can do in Smalltalk (or other "purely OOPL's) is to have >just ONE object with all of your procedural code attached to it. >THIS IS STILL OBJECT-ORIENTED, although very poorly so. Well, that is quite a stretch. You are saying that any code written in Smalltalk must be object oriented. Of what use is this definition? -- Robert Martin | Design Consulting | Training courses offered: Object Mentor Assoc.| rmartin@rcmcon.com | Object Oriented Analysis 2080 Cranbrook Rd. | Tel: (708) 918-1004 | Object Oriented Design Green Oaks IL 60048 | Fax: (708) 918-1023 | C++