From: maxtal@extro.ucc.su.OZ.AU (John MAX Skaller)
Newsgroups: comp.lang.c++
Subject: Re: Why is C++ not considered a true OOL?
Date: 27 Jan 93 19:39:54 GMT
Organization: MAXTAL P/L C/- University Computing Centre, Sydney

In article <1993Jan26.015219.10541@syacus.acus.oz.au> ian@syacus.acus.oz.au (Ian Joyner) writes:
>maxtal@extro.ucc.su.OZ.AU (John MAX Skaller) writes:
>
>>>Some people see pure OOLs as restrictive. 
>
>>	Especially if they favour writing some programs
>>using an ADT approach rather than an OO one.
>
>I don't see this. One definition proposed for OOP is that it approximates
>to ADTs + inheritance. So many OO languages are strongly based on ADTs. I
>can't see anything magic about C++ that makes it a better tool for
>implementing ADTs than any other OO language.

	ADT programming concentrates on VALUES not objects.
C++ provides strong support for values: constructors, conversions,
templates, value assignment, to name a few things. 

	The values --- to some extent --- are independent of
the objects holding them. More 'Object' oriented languages
do not provide this support to the same degree. 

	See how Eiffel 3 is upgraded to provide more support
for values from the original Eiffel: Eiffel 3 now has
constructors, and supports 'expanded' objects (known
in C as 'auto' variables), and supports copying of values
from one object to another and not just pointer
assignment.
>
>John's going to love me for this, but arguments defending C++, based
>on ADTs and mixed idiom programming are as fatuous as the engineering
>compromise argument, which was effectively dispelled last year. These
>are weak arguments. Even if they were strong arguments, they could not
>make up for the fact that C++ is a language based on all the faults
>of C, and it therefore leaves much to be desired as an OOL, or a modern
>language of any paradigm.

	I agree C++ has many problems, some cannot be resolved:
for example the lack of garbage collection is not likely to
be fixed --- ever (just guessing here).

	However, I use C++ not Eiffel because, for one thing,
I have a compiler for it for my PC. Now I have a choice
of 4 different compilers (at least).

>
>In summary, I think that ADTs, idioms, etc have become technical jargon
>that is now being thrown around to avoid the real issues.

	I think 'Object Oriented' fits this category much better.

	And some of the *real* issues are not technical but
political, social, commercial, economic and other things in such
a vein. 

	For example, Eiffel is not an ISO language. Many
sites will not use a language that does not have an ISO
standard --- including perhaps C++ until the standard is done.

	I saw a daring (Australian too!) post asking for
Eiffel by preference! This is unusual: perhaps they were
more aware of technical issues than most.

	But I dont think C++ is as bad as it is made out to be.
Its worst feature (IMHO) is the ugly syntax inherited from C.
(I'd like garbage collection and assertions too :-)


-- 
;----------------------------------------------------------------------
        JOHN (MAX) SKALLER,         maxtal@extro.ucc.su.oz.au
	Maxtal Pty Ltd, 6 MacKay St ASHFIELD, NSW 2131, AUSTRALIA
;------ SCIENTIFIC AND ENGINEERING SOFTWARE ---ph:  2 799 8223 --------