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 Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!usc!apple!netcomsv!jls From: jls@netcom.COM (Jim Showalter) Newsgroups: comp.lang.ada Subject: Re: c++ vs ada results Message-ID: <1991Jun25.192716.10931@netcom.COM> Date: 25 Jun 91 19:27:16 GMT References: <1991Jun12.164741.412@news.larc.nasa.gov> <1991Jun12.201740.16463@netcom.COM> <1991Jun16.041037.11606@kithrup.COM> <1991Jun18.041751.3740@netcom.COM> <1991Jun18.122812.18190@eua.ericsson.se> <3776@sirius.ucs.adelaide.edu.au> <1991Jun24.131612.17502@eua.er Organization: Netcom - Online Communication Services UNIX System {408 241-9760 guest} List-Id: Some years ago, Grady Booch wrote a library of 501 reusable components in Ada (and documented it in his second book, "Software Components with Ada: Structures, Tools, and Subsystems", Benjamin-Cummings). It didn't take him all that long to do, and they are widely used in industry. They work SO well, in fact, that a C++ version is in the works (it may already be available by now...how quickly one loses touch). I can answer some of the questions you ask, at least for this particular Ada library: >1. What trade-offs are you taking (space/time) ? Booch finessed this by writing different flavors of his components for different combinations of space/time tradeoffs. Thus, you have both bounded (typically array) and unbounded (typically linked list) versions of the components. Incidentally, Booch says (and I agree) that this was an area where inheritance would have played a legitimate role, if Ada had inheritance. >2. Which kind of error-handling mechanism are you taking ? Exceptions. >3. Which features do you include in your code library ? Unclear what this question is asking. >4. Which "class" is in charge in a complex UI-application ? N/A >5. How do you avoid redundant code in your library ? By building higher level abstractions up from lower level abstractions. >6. How do you achieve localized cost (you only pay for what you use) ? If buy "pay" you mean money (as in dollars), this is N/A, since there is a single cost for the entire library. If by "pay" you mean the cost of compiling in the code, this just exploits the Ada compilation rules, in which only those units in the DAG of compilation dependencies (via 'with'ing) are included in the resulting executable. >7. How do you avoid complexity ? By running as fast as possible in the other direction. :-) I'm not sure what you're asking here. Do you mean complexity within the implementation, complexity from the standpoint of the library client, or what? From the library client standpoint, the Booch components are very easy to use. >8. How do you structure the library documentation ? Well, Booch chose to write a book. This seems to have worked out quite well, since the book is so detailed that it answers almost any question anybody would ever care to ask about how to use the components. (It is also suitable for use as a text on data structures.) -- *** LIMITLESS SOFTWARE, Inc: Jim Showalter, jls@netcom.com, (408) 243-0630 **** *Proven solutions to software problems. Consulting and training on all aspects* *of software development. Management/process/methodology. Architecture/design/* *reuse. Quality/productivity. Risk reduction. EFFECTIVE OO usage. Ada/C++. *