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.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,7eaf9f2597de2259 X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2001-10-10 11:38:31 PST Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!sn-xit-01!supernews.com!newshub2.rdc1.sfba.home.com!news.home.com!news1.rdc1.sfba.home.com.POSTED!not-for-mail From: tmoran@acm.org Newsgroups: comp.lang.ada Subject: Re: on package naming, should the word "_pkg" be part of it? References: <3BC464DA.B99EF74@san.rr.com> X-Newsreader: Tom's custom newsreader Message-ID: Date: Wed, 10 Oct 2001 18:38:31 GMT NNTP-Posting-Host: 24.7.82.199 X-Complaints-To: abuse@home.net X-Trace: news1.rdc1.sfba.home.com 1002739111 24.7.82.199 (Wed, 10 Oct 2001 11:38:31 PDT) NNTP-Posting-Date: Wed, 10 Oct 2001 11:38:31 PDT Organization: Excite@Home - The Leader in Broadband http://home.com/faster Xref: archiver1.google.com comp.lang.ada:14196 Date: 2001-10-10T18:38:31+00:00 List-Id: >"profile" class-wide type and a "controller" classwide type. They're >... >So yeah, having an OO kind of syntax to say what's a primitive operation >of which would probably help in this case. 'class is a short and sweet way to say what's a primitive operation of which: procedure p(x: in Profile_Type; y : in Controller_Type'class); procedure q(x: in Profile_Type'class; y : in Controller_Type); p is a primitive operation of Profile_Type q is a primitive operation of Controller_Type > ... will need to be declared in the same package, and since they're > both tagged, it's going to be a mess sorting out the primitive operations. IMHO, a tagged type is just another programming construct, like a procedure or a record declaration. Nobody would argue that there should only be a single procedure per package and there's similarly nothing inherently bad about multiple OO declarations in a single package. There are general considerations about a package being broken up before it's too big to understand. Those considerations of course may lead to a single tagged type/package. But it's also possible to take a set of things that make sense together and fragment them into a bunch of hard-to-relate pieces. Sometimes it's better to put a closely related group of things into a single package even if the package gets larger than usual and contains more than one tagged type declaration. (Assuming, of course, that your programming language allows you a choice.)