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=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,d3bcc180a8b0eea4 X-Google-Attributes: gid103376,public From: Richard D Riehle Subject: Re: [Fwd: F22 completes 11% of its Flight tests] Date: 2000/01/25 Message-ID: <86l6nn$mhj$1@nntp4.atl.mindspring.net>#1/1 X-Deja-AN: 577573383 References: <387C8859.621FA20B@netscape.net> <387CC1C0.4C57E34C@quadruscorp.com> <387CEE4A.3965@Ganymede.com> <387F8E50.11D27E14@quadruscorp.com> <85oclj$nbp$1@nnrp1.deja.com> <387FCA73.3A61@Ganymede.com> <85ok6v$iee$1@ssauraab-i-1.production.compuserve.com> <3880CCC7.261957BC@quadruscorp.com> <38835B50.B2EF88C6@quadruscorp.com> <38838D5A.9EB9F452@maths.unine.ch> <864hrd$546$1@nnrp1.deja.com> <388E014A.B8F87F5@ebox.tninet.se> Organization: MindSpring Enterprises X-Server-Date: 25 Jan 2000 22:05:43 GMT Newsgroups: comp.lang.ada Date: 2000-01-25T22:05:43+00:00 List-Id: In article <388E014A.B8F87F5@ebox.tninet.se>, Stefan Skoglund wrote: >Can we agree on one thing ? >Every time someone uses a package provided by the vendor >they do so of their own volution ? ie if i need a LALR parser in >my program i probably picks up aflex ? I would agree that _withing_ a vendor supplied package at the specification level often reflects poor planning. Ordinarily, one should define the specification required for the problem space then _with_ the vendor's package in the package body (or even in a separately compiled subpgram) to effect the actual implementation. This accomplishes several things: 1) The interface is independent of the implementation 2) A different implementation can be used to effect the interface, 3) Vendor dependencies are hidden from users, 4) With Ada 95, we can take advantage of private child units, 5) We are more platform-independent. These are just a few reasons for hiding vendor supplied packages when possible. Granted, it is not always possible or even appropriate. There is even a valid school-of-thought that suggests no relying directly on standard Ada library packages at the specification level. How often does one need all of the resources of Text_IO, or Direct_IO. Instead, a package such as Direct_IO can be _withed_ in the package body to provide primitives necessary for exporting more powerful abstractions. Examples, procedure Open_With_Lock ( ... ); procedure Read_With_Lock ( ... ); procedure Unlock_File ( ... ); and other routines, all of which can be implemented through the services of Direct_IO, for ensuring file security in a task based product. So all the fuss about _extensions_ is just that, "fuss." Experienced Ada software designers have been avoiding such dependencies for a long time. Richard Riehle richard@adaworks.com