ak10+@andrew.cmu.edu (Andrew Joseph Kompanek) (08/09/89)
I have a number of questions regarding NeXT's choice of Objective C as the development language of choice: 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. Thanks, Drew Andrew Kompanek Carnegie Mellon University - Class of '92
bruceh@zygot.UUCP (Bruce Henderson) (08/09/89)
In article <QYrspry00Uw74A3X0p@andrew.cmu.edu>, 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. Originally there was even a lot of talk about using Smalltalk as the native software environment. Thank goodness they at least picked a flavor of C! Up until recently the only people who had a good C++ compiler [CFront] working was (believe it or not) Apple Computer Inc. They also fixed many of AT&T's bugs for them.... so thank you Apple for C++! -- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Bruce Henderson Software Engineer zygot!bruceh@Apple.COM "Sorry, Mathematica can't goon this much" ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
johnson@p.cs.uiuc.edu (08/10/89)
bruceh@zygot.UUCP (Bruce Henderson) writes: >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. >Originally there was even a lot of talk about using Smalltalk as the >native software environment. Thank goodness they at least picked a >flavor of C! Up until recently the only people who had a good C++ >compiler [CFront] working was (believe it or not) Apple Computer Inc. I have been using reliable (though not bug-free) cfront compilers for several years. I've never used one by Apple. Smalltalk is my favorite language. I don't buy machines that don't run it. Current implementations are certainly slower than C++. There are also problems linking with other languages. However, Objective C messaging is no faster than Smalltalk messaging. The only speed improvement comes from having fewer messages. On the other hand, C++ is easy to make fast.
david@jpl-devvax.JPL.NASA.GOV (David E. Smyth) (08/11/89)
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.
sg04@GTE.COM (Steven Gutfreund) (08/11/89)
In article <5547@jpl-devvax.JPL.NASA.GOV>, david@jpl-devvax.JPL.NASA.GOV (David E. Smyth) writes: > 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. This is an interesting comment. I think for some applications this might be fairly true. However, I tend to feel that if a person really is doing very exploratory work, he might miss the polymorphism of TRUE OO languages. Also, languages such as Smalltalk have a great library of things in the collection classes (dictionaries, sets, ordered collections) that might be tedious to reimplement. Can anyone list other things that might be lost in returning to straight C implementations? -- -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Yechezkal Shimon Gutfreund sgutfreund@gte.com GTE Laboratories, Waltham MA harvard!bunny!sgutfreund -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
jpd00964@uxa.cso.uiuc.edu (08/15/89)
[C++ vs. Objective C] Actually, this same argument seems to be going on on the Mac Notes files. While I do not know NeXT's reason for picking it, I do know some of the advantages of Objective C. First there is a much stronger inheritance in Objective C. There are even tokens for using this inheritance (self and super). C++ seems to be missing these. Second, What seems to be C++'s advantage over Objective C,operator overloading, is completely documented by Stroushoup (or however you spell it :->) to not be used. Or rather, "used very very rarely". My first OO lingo was Objective C, but after training someone who knew C++, I realized that much of C++ object oriented flavor is really lacking. It is hard to explain, but the smalltalk messaging seems to encourage object oriented thinking while the C++ function calling still leaves people thinking in Structured programming. As far as messaging being slower, it is very easy to get around it and call all the messages directly. This is discouraged except where time will be sped up incredibly. (iterations of a thousand). This allows the function to be used as a normal function while still having an Object Oriented flavor. Michael Rutman Softmed