Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!swrinde!elroy.jpl.nasa.gov!ncar!dinl!noren From: noren@dinl.uucp (Charles Noren) Newsgroups: comp.lang.objective-c Subject: Re: How's Stepstone/Objective-C doing? Message-ID: <1844@dinl.mmc.UUCP> Date: 12 Apr 91 16:50:23 GMT References: <1991Mar30.165230.11364@sugar.hackercorp.com> <6737@stpstn.UUCP> Reply-To: noren@dinl.UUCP (Charles Noren) Organization: Martin Marietta I&CS, Denver CO. Lines: 75 In article salc@alfred.shearson.com writes: >Please explain why C++'s implementation of the object oriented paradigm cannot >be used to implement software ICs. Please explain why a library of C++ classes >(such as NIHCL or Interviews) is not useful in the same way that an >objective-c class library would be. I'll horn in on this conversation... I have used Objective-C and am currently using C++. C++ can be used to create software IC's with polymorphic member functions. NIHCL is a good example of such a software IC that corresponds with ICPak 101. However, Objective-C has some significant advantages over C++ that should not be overlooked: 1. Objective-C from Stepstone comes with several mature, vendor supported class libraries. Comparing just the languages is much like getting into arguments about which microprocessor chips are better. What really counts is the development environment your given. With Objective-C you get the vendor supported Foundation classes (similar to C++'s NIHCL), the window class library and the 2-D graphics library. It should also be noted that the Foundation Class library (ICpak 101) comes bundled with Objective-C. For C++ there is NIHCL (National Institutes of Health Class Library), a Smalltalk-like class library. We are using NIHCL in our project, and I think the developers of it did a remarkable job! HOWEVER, no C++ compiler that I know of supports it. Sure, it comes in the Saber C++ distribution (along with other C++ compiler vendors), but it is listed as unsupported software -- i.e. no guarantees that it will even compile under future compiler releases. This does not give me a warm fuzzy feeling. Also, because NIHCL is unsupported, there is no vendor that I can call when I encounter problems. There is a nice book published by the makers of NIHCL, and there is the source of NIHCL, but the NIHCL software is so large that the current documentation needs to be expanded into many volumes before I can begin to feel comfortable with NIHCL. I've also found that not all C++ (Cfront 2.0, 2.1 compatable) compilers will compile NIHCL. The same problems with NIHCL goes with Interviews. With the vendor supported class libraries from Stepstone, you can easily give yourself an extra 6 month++ head start on a project over C++ just because the classes libraries from Objective-C are mature and vendor supported. 2. Langauge features. Objective-C was easier to learn (for me at least) than C++. Objective-C has just a few additions to the C language. With C++ I feel that there is much going behind the scenes that I sometimes lose sleep wondering what I'm missing that will bite me later. Objective-C also has the ability to deal more directly with "meta-class" issues that C++ cannot directly handle. I can ask if a class is derived from another class. This can be done in C++, but only if you build that into each class (like NIHCL). I can also ask if an Objective-C class can respond to a given method or member function and get a yes or no answer. C++ does not do this. Certainly C++ does have a lot of interesting features, such as multiple- inheritence, operator overloading, etc. -- and being a hacker at heart I love to play with these things. C++ also supports stronger type-checking. However, I personally prefer the the ability of getting to "meta-class" things of Objective-C over the enhancements found in C++. 3. Tools. The C++ development environment has made major strides in the past six months! We are using Saber C++ with its integrated development environment (which includes an interpreter, debugger, classs browser) and it IS NICE. However, I like the Stepstone class browser better (somewhere around here I wrote a review about the Stepstone browser). These are some of my thoughts about the Objective-C/C++ religious war. I'm biased towards Objective-C. These opinions reflect that bias, but no one should dismiss using Objective-C. -- Chuck Noren NET: dinl!noren@ncar.ucar.edu US-MAIL: Martin Marietta I&CS, MS XL8058, P.O. Box 1260, Denver, CO 80201-1260 Phone: (303) 977-1646