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.3 required=5.0 tests=BAYES_00, REPLYTO_WITHOUT_TO_CC,T_FILL_THIS_FORM_SHORT autolearn=no autolearn_force=no version=3.4.4 X-Google-Thread: a07f3367d7,39579ad87542da0e X-Google-Attributes: gida07f3367d7,public,usenet X-Google-NewGroupId: yes X-Google-Language: ENGLISH,ASCII-7-bit X-Received: by 10.224.130.195 with SMTP id u3mr22387421qas.1.1368583563700; Tue, 14 May 2013 19:06:03 -0700 (PDT) Path: y6ni44332qax.0!nntp.google.com!border1.nntp.dca.giganews.com!border4.nntp.dca.giganews.com!border2.nntp.dca.giganews.com!nntp.giganews.com!newsfeed.news.ucla.edu!nrc-news.nrc.ca!newsflash.concordia.ca!News.Dal.Ca!news.litech.org!news.stack.nl!aioe.org!.POSTED!not-for-mail From: "Dmitry A. Kazakov" Newsgroups: comp.lang.ada Subject: Re: Seeking for papers about tagged types vs access to subprograms Date: Fri, 10 May 2013 09:15:20 +0200 Organization: cbb software GmbH Message-ID: <1q07vm77kfwla$.1cz0xwxspxhay.dlg@40tude.net> References: <1luaso698dpcc$.rrv8385qwl92.dlg@40tude.net> <1xlzfj8qy1zey$.up1s1v3syagv.dlg@40tude.net> <1nw4bxyvk1gj5.xmiirr0diavq$.dlg@40tude.net> Reply-To: mailbox@dmitry-kazakov.de NNTP-Posting-Host: 15waz9CoS+eMakbyhTPyFQ.user.speranza.aioe.org Mime-Version: 1.0 X-Complaints-To: abuse@aioe.org User-Agent: 40tude_Dialog/2.0.15.1 X-Notice: Filtered by postfilter v. 0.8.2 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Date: 2013-05-10T09:15:20+02:00 List-Id: On Thu, 9 May 2013 16:33:55 -0500, Randy Brukardt wrote: > As usual, I pretty much totally disagree with your thinking here. The last > statement is trivially true, of course, but so what? A program has to be > built on top of a handful of "big" abstractions. And for each of those "big" > abstractions, there has to be a single type which takes the lead (probably > with a family of other types in support). Takes the lead, how? An abstraction including Employer, Employee, Factory, Salary, Time, Duration, Integer, Address, Gender, Age ... Who takes the "lead"? > In bigger systems, each of those abstractions corresponds to a subsystem (in > Ada, that's best modeled as a family of child packages). Inside each of > those subsystems, you'll have another family of types. But the majority of > these types should not extend beyond the subsystem. How these subsystems are going to interact to each other? > You seem to claim that all types are equally important, which is obvious > nonsense. Yes, I say that unimportant types need not to be exposed in public interfaces. Everything declared in the *same* scope is equally important, or else you have a design issue. > Claiming that the > lookup result enumeration ("Found", "Missing", "Ambiguous") is as important > as the symbol table data structure is insane. How do you measure importance? It is not a simple question. If you tried to roll up a measure and apply it most commonly used types, you would probably see your the idea of leading types (which, BTW, is one of most damaging ideas in OO ever) quickly falling apart. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de