From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=0.7 required=5.0 tests=BAYES_00,INVALID_DATE, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 Xref: utzoo comp.object:2719 comp.lang.ada:4956 Path: utzoo!news-server.csri.toronto.edu!rutgers!apple!agate!pasteur!galileo.berkeley.edu!jbuck From: jbuck@galileo.berkeley.edu (Joe Buck) Newsgroups: comp.object,comp.lang.ada Subject: Re: ada-c++ productivity Message-ID: <11966@pasteur.Berkeley.EDU> Date: 13 Mar 91 23:12:21 GMT References: <1991Mar7.163106.29477@wdl1.wdl.loral.com> <1991Mar10.151220.2581@forwiss.uni-passau.de> Sender: news@pasteur.Berkeley.EDU Reply-To: jbuck@galileo.berkeley.edu (Joe Buck) Distribution: usa List-Id: In article <1991Mar10.151220.2581@forwiss.uni-passau.de>, wiese@forwiss.uni-passau.de (Joachim Wiese) writes: |> C++ is a "better C" but not a full OO-language. C++ is an OO-language that |> offers a lot of flexibility. To much flexibility and to |> much pointers (to much C) to lead to quality software and productivity. |> I would rather be interested in comparing a _real_ |> "full OO-language" as EIFFEL vs. ADA. C++ and Eiffel are full object-oriented languages; Ada is not. Some definitions, from Grady Booch's "Object-Oriented Design With Applications", which has been generally recognized in this group as one of the best texts available: "Object-oriented programming is a method of implementation in which programs are organized as cooperative collections of objects, each of which represents an instance of some class, and whose classes are all members of a hierarchy of classes united via inheritance relationships." He quotes Cardelli and Wegner's definition: "A language is object-oriented if and only if it satisfies the following requirements: - It supports objects that are data abstractions with an interface of named operations and a hidden local state - Objects have an associated type (class) - Types (classes) may inherit attributes from supertypes (superclasses)" Ada lacks attribute #3 and is therefore not an object-oriented language. Languages that satisfy the first two clauses but not the third are called by Cardelli and Wegner "object-based" languages; Ada is an object-based language. C++ satisfies all three attributes. Eiffel certainly has some nice features lacking in C++, but then C++ has some nice features lacking in Eiffel. And of course it is possible to write bad programs in any language. -- Joe Buck jbuck@galileo.berkeley.edu {uunet,ucbvax}!galileo.berkeley.edu!jbuck