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.8 required=5.0 tests=BAYES_00,INVALID_DATE autolearn=no autolearn_force=no version=3.4.4 Xref: utzoo comp.object:2744 comp.lang.ada:4974 Path: utzoo!news-server.csri.toronto.edu!rutgers!apple!decwrl!elroy.jpl.nasa.gov!usc!aero-c!jordan From: jordan@aero.org (Larry M. Jordan) Newsgroups: comp.object,comp.lang.ada Subject: Re: ada-c++ productivity Message-ID: <1991Mar15.224626.27077@aero.org> Date: 15 Mar 91 22:46:26 GMT References: <1991Mar10.151220.2581@forwiss.uni-passau.de> <11966@pasteur.Berkeley.EDU> Sender: news@aero.org Distribution: usa Organization: The Aerospace Corporation, El Segundo, CA List-Id: "Something's" missing from this definition of OOP--Dynamic binding. (also, OOPs don't require classes--see SELF). I'd say we dismiss the term OOP and talk about langs in term of features. Inh. and dyn. binding are not enough. There are other language features I find desirable--parameterized types and exceptions. What about library management? What about environements with integrated debuggers? (I'd sure hate to build anything bigger than a hello world program without a library manager. ). Some may finding tasking essential. I did a comparison of lang. features a while back. Some may find this interesting. Language Inheritance DynamicBnd'g Type[T] Except. Task LibMgr C++ yes-MI/class yes-vft no[1] no[2] no hand Objective-C yes-SI/class yes-tlu no no no hand Smalltalk yes-SI/class yes-tlu no no no ? SELF yes-MI/object yes-? no no no ? TP6.0 yes-SI/class yes-vft no no no auto Eiffel yes-MI/class yes-vft yes yes no auto Ada yes[3] no no[4] yes yes auto MI=mult. inh. SI=single inh. vft=virtual function tables tlu=run-time table lookup with caching class=class-based inh. object=object-based inh. hand=hand crank a make file auto=automated ?=don't know [1] available next version [2] available next version? [3] derived types are not assignment compatible without casting. [4] parameterized procedures and packages but not types I hate the C'ness of C++, but I find myself implementing many things in C++ just because of inheritance and dynamic binding. If Ada is ever to become mainstream (and I seriously hope it does) inheritance and dyn. binding had better be incorporated into the language. --Larry