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.