Path: utzoo!utgpu!news-server.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!cs.utexas.edu!uunet!mcsun!hp4nl!media01!pkr From: pkr@media01.UUCP (Peter Kriens) Newsgroups: comp.object Subject: Re: Objective-C review Message-ID: <1278@media01.UUCP> Date: 5 Jul 90 10:12:03 GMT References: <1638@dinl.mmc.UUCP> <1690@kunivv1.sci.kun.nl> <5239@stpstn.UUCP> <55443@microsoft.UUCP> <5281@stpstn.UUCP> <5286@stpstn.UUCP> <3814@kim> Reply-To: pkr@media01.UUCP (Peter Kriens) Organization: Mediasystemen, Netherlands Lines: 53 In article about a review of Objective-C I read the following statement: | I agree that if everyone accepted Objective C and Stepstone's class | libraries as the standard for reusable software then great strides | toward alleviating the software crisis would be made. The combination | of OOP's reusable paradigm coupled with a standard set of classes that | *everyone* used would be unbeatable. | | But in reality, the same effect would be gained if *any* OOP language | and library of classes were chosen as standard (assuming the language | supports OOP to a high degree.) This is where I differ with your | (implied) criticism of C++. C++ will be (is?) just as good when a | fully featured, high quality and highly integrated set of library | classes become available and widely used. I absolutely do not agree that a "standard" class library for C++ would allow the ideal IC/board level approach. The C++ language is much more targeted at making many "stand-alone" objects. Most C++ class libraries define their own hierarchy which means that it is almost impossible to come to 1 class tree for all third party software. This means that the "connectivity" of the software IC's in C++ will always be much harder to implement in comparising to Objective C, Smalltalk or CO2, which are all languages that build their classes from one root. This single root allows for a common behavior that is used by the general classes like collections. In C++ you have it is too natural to build low level objects that each have their own root behaviour. If we go back to the IC/board level metaphor, in C++ you will be using ECL, TTL, DDL (remember?) MOS and few hundred other standards, which means converters etc. In the languages which use one root and use dynamic binding you can specify a common behaviour which means that you only use one interface specification. So, though in theory it would probably be possible to standardize on one class library in C++. But the number of options and possible incompatibilities would be so overwhelming that we would need a standard committee to figure out what works how. And we all know how long it takes to get all C compilers to work alike using ANSI. I am a strong believer in the IC idea. Not that I believe that the complexity of a hardware even comes close to software. The number of dimensions in hardware is much smaller. In hardware you repeat the same building blocks to build a bigger system. In software every component is unique. But by encapsulation and using a generic software interface I have seen that it is possible to build systems faster. And I think that languages like Smalltalk, Objective C and CO2 are much more productive in this area then C++. Peter Kriens