Path: utzoo!attcan!uunet!cs.utexas.edu!usc!elroy.jpl.nasa.gov!jpl-devvax!david
From: david@jpl-devvax.JPL.NASA.GOV (David E. Smyth)
Newsgroups: comp.sys.next
Subject: Re: C++ vs. "Objective C"
Message-ID: <5547@jpl-devvax.JPL.NASA.GOV>
Date: 10 Aug 89 19:28:20 GMT
References:  <2393@zygot.UUCP>
Reply-To: david@jpl-devvax.JPL.NASA.GOV (David E. Smyth)
Organization: Jet Propulsion Laboratory, Pasadena, CA.
Lines: 45

bruceh@zygot.UUCP (Bruce Henderson) writes:
>ak10+@andrew.cmu.edu (Andrew Joseph Kompanek) writes:
>> First, is there an Objective C standard, either formal or informal?  If not,
>> what was NeXT's reasoning behind adopting Objective C?  In any event,
>> why wasn't C++ chosen?  Its popularity is growing and more important,
>> Stroustrup has defined the language formally.
>
>The main reason behind this is probably due to the fact that C++ is a
>fairly recent beast.  When work was begun on the NeXT and NeXTStep
>(about 3 or so years ago) C++ was not really a consideration.
>	...  Thank goodness they at least picked a flavor of C!

Besides, ObjC is alot cleaner than that disasterous hack called C++.
C++ starts out looking wonderful, and it has alot of great concepts,
but it is really infact a research project.  The developers (Stroustrup et al)
are off working on rahter bizarre "enhancements" while the core remains
a twisted wreck.

For example, there is no support for class objects.  Well, there sort of is,
but is is mired in more caveats than rules.

For example, the operator stuff is a nightmare.

For example, the implicit constructor stuff is mostly useful for
useless objects: it is most usful for objects like ints and floats,
but rather terrible for the typical objects which live forever.  The
activation/inactivation mechanism of ObjC is alot more useful for
object oriented software.  The constructor/destructor stuff is alot
more usefule for archaic structured programs with specialized data types
which are kinda like proto-objects.

After putting my career and reputation on the line boosting C++ for an
important project here at JPL, I think I've seen the good and bad side
of it.  C++ really isn't good enough.

I don't use C++ anymore.  I just do Object-Oriented designs and programs,
but I use C as the implementation language.  These object veneers are 
simply not necessary.

Remember the early days of Structured Programming, when everyone said you
had to use COBOL if you wanted structured programs?  That was BS, and so
is the current "conventional wisdom" that we need super-duper object oriented
languages to do object oriented programming.

C works.  And it is very obvious what happens.