comp.lang.ada
 help / color / mirror / Atom feed
From: rmartin@rcmcon.com (Robert Martin)
Subject: Re: C++ not OOP? (Was: Language Efficiency
Date: 1995/04/21
Date: 1995-04-21T00:00:00+00:00	[thread overview]
Message-ID: <1995Apr21.184038.7182@rcmcon.com> (raw)
In-Reply-To: 3n0uvi$8jt@atlantis.utmb.edu


>pete@borland.com (Pete Becker) wrote:

>> 	Suppose you are evaluating a new language, say, C+#, and you 
>> hear from a reliable source that it is a "pure OOPL". What conclusions 
>> can you draw about this language that would tell you whether it is 
>> better suited to your purposes than, say, C+$, which is not a "pure 
>> OOPL"?

Curtis Bass <cbass%intmeds1.utmb@mhost.utmb.edu> writes:

>The conclusions that I would draw are:

>   #1. All code must be attached to objects.

>      i. I will not be able to write a procedure that
>         is independent -- it must be attached to an object

This does not guarantee that the stucture of your procedures or your
objects will be in any way superior to those written in C+$.  So of
what use it it?

>     ii. It would behoove me to have an Object-Oriented
>         Design (as opposed to a Structured Design) of
>         the system before I start coding in C+#, because
>         writing structured code will not be an option.
>         (Yes, I can kludge it by having just one object,
>         and attaching all of the code to that object, but
>         the result technically would still not be an
>         example of "structured programming," but would
>         rather be an example of BAD OO programming). 

Saying that it is BAD doesn't eliminate it as an option.  In any case,
you could make the identical argument about C+$.  It would behoove you
to have an object oriented design!

>    iii. My programming team had better be fluent in OO
>         concepts before using C+#, because there is no
>         mechanism for writing structured C+# today, and
>         gradually growing into Object-Oriented C+#
>         tomorrow.

This is the same argument as number ii, just rephrased.  In any case
it is just as true for C+$.  Your programming team had better be
fluent in OO if they are going to implement an OOD.

>     iv. Since it is a pure OOPL, there is a great
>         likelihood that the language itself is of
>         a fairly simple and elegant design. OTOH,
>         C+$ will probably be a very complex language,
>         since it supports two different programming
>         paradigms (structured and OO). 

I am sure that you cannot substantiate this claim.

>         Also, with
>         C+#, I can rest assured that the syntax is
>         uniform (all procedures will have an object
>         ID prefix). 

What do you mean?  A prefix?  Do you mean that all procedures will
belong to an object?  Isn't this your point i above?

>         C+$ would allow me to have SOME
>         procedures WITH an object ID prefix, and some
>         WITHOUT one. This could lead to confusion for
>         the maintenance programmers. 

How?  

>         Also, such code
>         would represent a rather messy, inelegant
>         design, which would be less of an option in C+#.

Why?  Are designs with nothing but objects always cleaner than designs
that sometimes have global functions?  I'd like to see the proof of that.

>   #2. All data must be encapsulated within objects.

>      i. There will not be any variables that are global
>         to the application, unless they reside in a
>         "root" object. Even in this case, we can have
>         more control over their scope and accessability
>         than would be avalable in C+$. In C+$, any global
>         variable we have would be accessable by ANY
>         procedure we write. In C+#, this would not be
>         the case.

Unless all procedures and data were in the same object.  Then there is
no control at all.

>     ii. I can create new data types more easiliy, by
>         deriving them from existing data types, then
>         changing only that which needs to be changed,
>         and inhereting the rest of the functionality
>         from the parent data type. Since C+$ is not
>         a pure OOPL, then variables are not objects,
>         and therefore I would not have this capability.

In C+$ you would have this ability with any kind of variable you
desired to have it with.


-- 
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++




  parent reply	other threads:[~1995-04-21  0:00 UTC|newest]

Thread overview: 69+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1995-04-02  0:00 Language Efficiency Robert C. Bethel
1995-04-04  0:00 ` Harold P Zbiegien
1995-04-04  0:00   ` Larry Kilgallen
1995-04-06  0:00     ` Robert Dewar
1995-04-04  0:00   ` Kennel
1995-04-05  0:00     ` Ray Toal
1995-04-07  0:00     ` Robert Dewar
1995-04-19  0:00       ` Fergus Henderson
1995-04-19  0:00         ` Robert Dewar
1995-04-20  0:00           ` Kennel
1995-04-19  0:00             ` Robert Dewar
     [not found]       ` <3m9o9q$igf@stc06.ctd.ornl.gov>
     [not found]         ` <D6ss6z.Gvw@mcshub.dcss.mcmaster.ca>
     [not found]           ` <dewar.797512974@gnat>
1995-04-19  0:00             ` Adam Beneschan
1995-04-19  0:00               ` Robert Dewar
     [not found]             ` <3mbmd5$s06@icebox.mfltd.co.uk>
1995-04-19  0:00               ` C++ not OOP? (Was: " Harley Davis
     [not found]               ` <D6uA77.Lqp@mcshub.dcss.mcmaster.ca>
     [not found]                 ` <dewar.797566928@gnat>
     [not found]                   ` <D6vxDG.JKJ@mcshub.dcss.mcmaster.ca>
     [not found]                     ` <dewar.797636710@gnat>
     [not found]                       ` <D6xF22.38H@mcshub.dcss.mcmaster.ca>
     [not found]                         ` <dewar.797729041@gnat>
     [not found]                           ` <3msdop$862@stc06.ctd.ornl.gov>
1995-04-19  0:00                   ` Paul Graham
1995-04-19  0:00                     ` Robert Dewar
     [not found]                 ` <3mcfbf$psl@acmez.gatech.edu>
     [not found]                   ` <3mgnkc$e3j@atlantis <3muaif$46u@atlantis.utmb.edu>
     [not found]                     ` <3n0lsu$nio@druid.borland.com>
     [not found]                       ` <3n0uvi$8jt@atlantis.utmb.edu>
1995-04-19  0:00                         ` C++ not OOP? (Was: " Fernando Mato Mira
1995-04-19  0:00                           ` Curtis Bass
1995-04-19  0:00                             ` David Weller
1995-04-20  0:00                               ` Curtis Bass
1995-04-20  0:00                                 ` David Weller
1995-04-20  0:00                                   ` Curtis Bass
1995-04-21  0:00                                     ` Robert Martin
1995-04-21  0:00                                       ` Ed Osinski
1995-04-21  0:00                                     ` Fernando Mato Mira
1995-04-20  0:00                                   ` Robert Dewar
1995-04-21  0:00                                     ` Curtis Bass
1995-04-21  0:00                                       ` Robert Dewar
1995-04-21  0:00                                 ` Robert Martin
1995-04-20  0:00                         ` Matt Austern
1995-04-21  0:00                         ` Robert Martin
1995-04-21  0:00                           ` Curtis Bass
1995-04-21  0:00                         ` Robert Martin [this message]
1995-04-21  0:00                           ` Curtis Bass
1995-04-21  0:00                         ` Ed Osinski
1995-04-21  0:00                         ` Matt Austern
1995-04-22  0:00                           ` David Weller
1995-04-22  0:00                           ` Robert Martin
1995-04-22  0:00                             ` OOAD courses by Object Mentor cjames
     [not found]                   ` <3mgnkc$e3j@atlantis.utmb.edu>
     [not found]                     ` <3mk65q$1kti@watnews1.watson.ibm.com>
     [not found]                       ` <3muavq$46u@atlantis.utmb.edu>
1995-04-21  0:00                         ` C++ not OOP? (Was: Language Efficiency Norman H. Cohen
1995-04-21  0:00                           ` Curtis Bass
     [not found]                     ` <1995Apr13.180317.3308@rcmcon.com>
     [not found]                       ` <3muaif$46u@atlantis.utmb.edu>
1995-04-21  0:00                         ` Robert Martin
1995-04-21  0:00                           ` Curtis Bass
1995-04-21  0:00                             ` Robert Dewar
1995-04-22  0:00                             ` Robert Martin
     [not found]                   ` <3mcoh6$add@Starbase.NeoSoft.COM>
     [not found]                     ` <3mdrpf$3o9@disunms.epfl.ch>
     [not found]                       ` <dewar.797608300@gnat>
     [not found]                         ` <3mg45s$5r7@disunms.epfl.ch>
     [not found]                           ` <3mjc8c$630@crcnis3.unl.edu>
     [not found]                             ` <D71Gs9.2FG@nntpa.cb.att.com>
     [not found]                               ` <EACHUS.95Apr17162921@spectre.mitre.org>
     [not found]                                 ` <3n1als$ksi@no-names.nerdc.ufl.edu>
1995-04-19  0:00                                   ` Multiple dispatch (was Re: C++ not OOP?) Fernando Mato Mira
     [not found]                           ` <1995Apr13.152104@di.epfl.ch>
1995-04-21  0:00                             ` C++ not OOP? (Was: Language Efficiency James McKim
1995-04-19  0:00               ` Multiple dispatch (was Re: C++ not OOP?) Kenneth Almquist
1995-04-19  0:00               ` Robert I. Eachus
1995-04-21  0:00               ` Robert I. Eachus
1995-04-21  0:00               ` C++ not OOP? (Was: Language Efficiency Norman H. Cohen
1995-04-21  0:00                 ` Fernando Mato Mira
1995-04-21  0:00                   ` Erik Naggum
     [not found]               ` <MATT.95Apr17124932@physics10.berkeley.edu>
     [not found]                 ` <3mujnl$4u8@atlantis.utmb.edu>
1995-04-20  0:00                   ` ron house
1995-04-21  0:00                   ` Robert Martin
1995-04-21  0:00                     ` Curtis Bass
     [not found]         ` <dewar.797469506@gnat>
     [not found]           ` <1995Apr10.095958@di.epfl.ch>
     [not found]             ` <dewar.797513130@gnat>
     [not found]               ` <1995Apr10.165638@di.epfl.ch>
     [not found]                 ` <D6yGqv.4BG@nntpa.cb.att.com>
1995-04-21  0:00                   ` Fergus Henderson
1995-04-22  0:00                     ` Kenneth Almquist
1995-04-20  0:00   ` Matt Austern
1995-04-21  0:00   ` Robert I. Eachus
1995-04-04  0:00 ` Bob Kitzberger
1995-04-05  0:00   ` Mike Wilson
1995-04-05  0:00     ` Larry Kilgallen
1995-04-05  0:00     ` David Weller
1995-04-05  0:00 ` Mitch Gart
1995-04-05  0:00 ` Lawrence Free/ A.F. Software Services
1995-04-06  0:00 ` Ken Leidner
1995-04-06  0:00   ` Larry Kilgallen
  -- strict thread matches above, loose matches on Subject: below --
1995-04-20  0:00 C++ not OOP? (Was: " Wes Groleau
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox