Andre_Louis_Marquis@cup.portal.com (12/24/87)
>We are investigating the differences between Objective-C and C++. >What class libraries are available for C++? Try getting a copy of Keith Gorlen's OOPS Library. It is perhaps even larger than the Objective-C library, and there's no copyright restriction. OOPS is in the "guru-only" stage, but I found it as easy to use and it's free. Mr. Gorlen's uucp address is uunet!mimsy!elsie!nih-csl!keith. Basically, you send him a tape and he returns it with a copy of the library and some preliminary documentation. (And it's not printed on 8 1/2x6 1/2 yellow paper, for those of you who know what I mean. :-)). OOPS is bug free in my experience, but it may not have been ported to as many machines as the Objective-C library. You do get all the source code, however. I recommend it if you don't mind a little adventure. I'm using it for a major project. >(I just requested information about Phoenix's PForce++.) Would someone mail me a hint about this? I'm new to this conference. >If I define a common superclass for all objects (Object), as >others have mentioned, do I get the flexibility that Objective-C provides? >Are there any problems with that strategy? Since C++ doesn't provide this >capability directly, it seems to conflict with C++'s underlying philosophy. OOPS defines a common class hierarchy. You may test object classes and phyla. Virtual methods are inherited and can be overridden. >Is there any equivalent of [super foo] in C++? This allows method foo to >invoke the inherited method that was overridden. You just scope the name -- super_class::foo(). >Are there any fundamental differences between the messagers, or is that >simply an implementation issue? There is no dynamic messaging in C++, i.e. no "perform: selector" message, but normal messaging is faster. You also get automatic constructors/destructors, operator redefinition (<< and >> I/O is nice) and a more general paradigm. (On the hustings he goes...) But, most of all, C++ is a powerful, multi-vendor standard. There are free toolkits (OOPS for classes, InterViews for X Windows, ...?) and soon a free compiler and debugger. (Thank you, Michael Tiemann and the Free Software Foundation.) I think that PPI has done some very good work with Objective-C. They also charge a hefty fee for it (An ICpak (It's user interface software.) development license is $35,000 + $5,000 for the source code, for example. I'm sure it's excellent stuff, but $40K is STEEP.) You rely on them for innovation and bug fixes. (In addition, I think their documentation is horrible. Correct me if I'm wrong. Their manual has ONE complete example program. Stroustrup's book is in a different league.) There are people who are glad to do the same manner of hand holding for you with C++ that PPI provides for Objective-C. I've used both and I prefer C++. That's an opinion. Andre Marquis
keith@nih-csl.UUCP (keith gorlen) (12/28/87)
In article <2132@cup.portal.com>, Andre_Louis_Marquis@cup.portal.com writes: > >We are investigating the differences between Objective-C and C++. > > >What class libraries are available for C++? > Try getting a copy of Keith Gorlen's OOPS Library. It is perhaps even larger > than the Objective-C library, and there's no copyright restriction. ... The OOPS library is about where the Objective-C library was circa '84-'85. The current Objective-C library is much larger, and has an extensive set of classes for interactive graphics. > OOPS is > in the "guru-only" stage, but I found it as easy to use and it's free. > Mr. Gorlen's uucp address is uunet!mimsy!elsie!nih-csl!keith. Basically, > you send him a tape and he returns it with a copy of the library and some > preliminary documentation. Please do not do this! I'm trying to get out of the OOPS magtape distribution business. A new release of OOPS will be placed on the C++ tape that USENIX is preparing. Watch this newsgroup for an announcement! In the future, OOPS will be available via anonymous ftp. > >If I define a common superclass for all objects (Object), as > >others have mentioned, do I get the flexibility that Objective-C provides? > >Are there any problems with that strategy? Since C++ doesn't provide this > >capability directly, it seems to conflict with C++'s underlying philosophy. > OOPS defines a common class hierarchy. You may test object classes and > phyla. Virtual methods are inherited and can be overridden. Objective-C has "Smalltalk-style" messaging, C++ has "Simula-style" messaging. C++ messaging is safer and probably faster, Obj-C more flexible -- and dangerous. > >Is there any equivalent of [super foo] in C++? This allows method foo to > >invoke the inherited method that was overridden. > You just scope the name -- super_class::foo(). The disadvantage of this is that you must know the name of the base class, the advantage is that this extends easily to handle multiple inheritance. > >Are there any fundamental differences between the messagers, or is that > >simply an implementation issue? > There is no dynamic messaging in C++, i.e. no "perform: selector" message, but > normal messaging is faster. See above. -- Keith Gorlen phone: (301) 496-5363 Building 12A, Room 2017 uucp: uunet!mimsy!elsie!nih-csl!keith National Institutes of Health Bethesda, MD 20892
Andre_Louis_Marquis@cup.portal.com (12/30/87)
>The OOPS library is about where the Objective-C library was circa >'84-'85. The current Objective-C library is much larger, and has an >extensive set of classes for interactive graphics. I have Objective-C version 3.3, dated 2/13/87. It has 23 classes including Nil and Object (I'm too lazy to type the list.). OOPS as of 10/2/87 has 42. It's not much of an apples and oranges comparision, either. OOPS is larger. PPI offers ICpak 201, "A collection of Software-ICs which allows software engineers to build custom, multiwindow iconic user interfaces for workstation applications." It has 49 classes, but as of 7/28/87, it's expensive -- $35,000 for a development license + $5,00 for source code. For a commercial application, it just might be the right thing since it exists now. On the free front, there is a C++ toolkit on the X11R1 tape called InterViews. It's still evolving and needed some patches to run on a Sun, but it works quite well. I doubt it's as extensive as ICpak (for which I have only seen promotional literature). Andre Marquis
keith@nih-csl.UUCP (keith gorlen) (12/31/87)
In article <2197@cup.portal.com>, Andre_Louis_Marquis@cup.portal.com writes:
* *The OOPS library is about where the Objective-C library was circa
* *'84-'85. The current Objective-C library is much larger, and has an
* *extensive set of classes for interactive graphics.
* I have Objective-C version 3.3, dated 2/13/87. It has 23 classes including
* Nil and Object (I'm too lazy to type the list.). OOPS as of 10/2/87 has 42.
* It's not much of an apples and oranges comparision, either. OOPS is larger.
*
* PPI offers ICpak 201, "A collection of Software-ICs which allows software
* engineers to build custom, multiwindow iconic user interfaces for workstation
* applications." It has 49 classes, but as of 7/28/87, it's expensive -- $35,000
* for a development license + $5,00 for source code. For a commercial
* application, it just might be the right thing since it exists now.
Thanks for the "objective" comparison and the unsolicited testimonial.
I didn't realize that the graphics classes were a separate product,
and that expensive.
The biggest problem with OOPS right now is that the documentation is
badly incomplete and out of date. I'm trying to do something about
that, but it is slow and painful.
* On the free front, there is a C++ toolkit on the X11R1 tape called InterViews.
* It's still evolving and needed some patches to run on a Sun, but it works
* quite well. I doubt it's as extensive as ICpak (for which I have only seen
* promotional literature).
And the Andrew BE2 and X Toolkits will be on the X11R2 tape in
February, I believe. Andrew is written in Class, and the X Toolkit in
plain C, but with free stuff like this around who will be willing to
pay $40K for ICpak 201?
Reminds me of the Bob & Ray radio commercial for Epson printers:
Ray: How much does your printer cost?
Bob: $1,000,000
Ray: Isn't that rather expensive? The Epson printer costs
only $195.
Bob: Yes, but if I can sell just one I can retire!
--
Keith Gorlen phone: (301) 496-5363
Building 12A, Room 2017 uucp: uunet!mimsy!elsie!nih-csl!keith
National Institutes of Health
Bethesda, MD 20892