[comp.lang.c] C++ is not an object-oriented language

ok@quintus.UUCP (Richard A. O'Keefe) (03/02/88)

In article <...>, tub!cabo (Carsten Bormann @ Technical University of Berlin)
writes:
> In article <694@cresswell.quintus.UUCP> ok@quintus.UUCP
> (Richard A. O'Keefe) writes:
> >  C++ is the Fortran 8X of object-oriented languages.

> What a piece of nonsense.
> For the uninitiated: C++ is not an ``object-oriented language''.

I'm ever so sorry, the correct term, taken from Stroustrup's book,
is not "object-oriented".  I was quite wrong.  It is "object-BASED".
Stroustrup says quite explicitly on the first page of the preface
that 'the key concept in C++ is "class".'
          ***	(my emphasis)
If that doesn't entitle it to the description "object-oriented language",
then Simula, Clascal, and various others aren't object-oriented either.

When I said that C++ is the Fortran 8X of object-oriented languages,
I meant that it consists of a lot of admirable features bolted on top
of an earlier language which was intended for a different style of
programming, and is not well suited to the new approach.  Fortran 8X
is just such an unhappy grafting of unlike languages (contra Carsten
Bormann, Fortran 77 is NOT), which makes the comparison apt.
Both Fortran 8X and C++ have as an explicit design constraint the inclusion
of the older language as a subset (Fortran 77, again contra Bormann, does
not have Fortran 66 as a subset).

As for "comparing the position of C++ in the development of the C
language to ... Fortran-77" as Bormann recommends, we can't do that,
because we know what comes after Fortran-77 (namely 8X), and whatever
will come after C++ hasn't done so yet.

Getting back to the original topic, which was conformant array
parameters, there seem to be three groups:
1. a small group of people saying "I've been wanting something like that"
2. a larger group of people saying "you don't need it"
3. an enormous group of people saying nothing at all.

The question which occurs to me is this:  how many people who have tried
to write moderate-to-large numerical applications in C would belong to
the second group if they were to speak up?

The argument that it is too late to get such a feature into this version
of ANSI C, and that its prior implementation in other languages doesn't
count as "prior art" _for C_ has considerable force.  If that's so, it's
so.  But what do the people who have experienced the need for some such
feature say?  How many people who have tried to translate one of the
EISPACK or LINPACK routines into C dislike the conformant array parameter
proposal?  

mike@turing.UNM.EDU (Michael I. Bushnell) (03/03/88)

In article <719@cresswell.quintus.UUCP> ok@quintus.UUCP (Richard A.
O'Keefe) writes:

>In article <...>, tub!cabo (Carsten Bormann @ Technical University of Berlin)
>> For the uninitiated: C++ is not an ``object-oriented language''.

>I'm ever so sorry, the correct term, taken from Stroustrup's book,
>is not "object-oriented".  I was quite wrong.  It is "object-BASED".
>Stroustrup says quite explicitly on the first page of the preface
>that 'the key concept in C++ is "class".'
>          ***	(my emphasis)
>If that doesn't entitle it to the description "object-oriented language",
>then Simula, Clascal, and various others aren't object-oriented either.

Actually there is a real difference between C++ and real OO languages:
in C++ you have to type your variables.  Because of this, message
overloading isn't nearly as useful.  

In an object oriented language, just as in a value oriented language,
variables are not typed in any way.

Another important thing is that in the only fully object oriented
language, smalltalk, note that *everything* is an object.  Even the
classes.  In C++ there is no notion of a metaclass.  This is also a
problem with "Little Smalltalk."

				Michael I. Bushnell
				Internet: mike@turing.unm.edu
				UUCP: mike@turing.unm.edu
				Bitnet: mike@turing.unm.edu
				CSnet: mike@turing.unm.edu
				YourFavoriteNet: mike@turing.unm.edu
			Golly, don't domains make everything simpler?
For peoply who run UUCP but haven't switched over to smail *yet*, you
can try {ucbvax,gatech}!unmvax!turing!mike.  

Or write:
  {Box 295, Coronado Hall} or {Computer Science, Farris Engineering Center}
  University of New Mexico
  Albuquerque, NM 87131
Or call:
  (505)277- [2992=dorm][6116=work]

I work for the CS department.  But don't blame them.

henry@utzoo.uucp (Henry Spencer) (03/05/88)

> In an object oriented language, just as in a value oriented language,
> variables are not typed in any way.

What we have here is a religious argument over the semantics of the words
"object oriented".  Nobody is going to learn anything by continuing it.
"My definition of 'object oriented' is better than yours, so there!"

What is clear is that C++ has many of the advantages of languages like
Smalltalk, plus compile-time type checking (i.e. compile-time error finding)
and efficient execution.  A potent combination, that.
-- 
Those who do not understand Unix are |  Henry Spencer @ U of Toronto Zoology
condemned to reinvent it, poorly.    | {allegra,ihnp4,decvax,utai}!utzoo!henry