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,FREEMAIL_FROM autolearn=ham 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,UTF8 X-Received: by 10.68.246.229 with SMTP id xz5mr5143754pbc.1.1368583776320; Tue, 14 May 2013 19:09:36 -0700 (PDT) Path: bp1ni2329pbd.1!nntp.google.com!npeer02.iad.highwinds-media.com!news.highwinds-media.com!feed-me.highwinds-media.com!border3.nntp.dca.giganews.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!News.Dal.Ca!news.litech.org!news.etla.org!aioe.org!.POSTED!not-for-mail From: =?utf-8?Q?Yannick_Duch=C3=AAne_=28Hibou57?= =?utf-8?Q?=29?= Newsgroups: comp.lang.ada Subject: Re: Seeking for papers about tagged types vs access to subprograms Date: Sat, 11 May 2013 09:08:31 +0200 Organization: Ada @ Home Message-ID: References: <1luaso698dpcc$.rrv8385qwl92.dlg@40tude.net> <1xlzfj8qy1zey$.up1s1v3syagv.dlg@40tude.net> <1nw4bxyvk1gj5.xmiirr0diavq$.dlg@40tude.net> <1q07vm77kfwla$.1cz0xwxspxhay.dlg@40tude.net> NNTP-Posting-Host: Sz+Cz+YCi2SKRtUDNsu0BQ.user.speranza.aioe.org Mime-Version: 1.0 X-Complaints-To: abuse@aioe.org User-Agent: Opera Mail/12.15 (Linux) X-Notice: Filtered by postfilter v. 0.8.2 X-Received-Bytes: 3071 Content-Type: text/plain; charset=utf-8; format=flowed; delsp=yes Content-Transfer-Encoding: Quoted-Printable Date: 2013-05-11T09:08:31+02:00 List-Id: Le Sat, 11 May 2013 03:00:39 +0200, Randy Brukardt = a =C3=A9crit: >> 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. > > What utter nonsense. > > Ada.Text_IO defines Count, File_Type, File_Mode, Field, and Number_Bas= e > types. If you think these are all equally important for the primary ta= sk = > of > doing I/O, you have a real problem with perspective. File_Type does al= l = > of > the work, while the rest just raise the abstraction level a bit. I don't feel Dmitry talked about amount of work done when he introduced = = =E2=80=9Cimportance=E2=80=9D. I'm guessing it was about importance for t= he abstraction and = so its usability. That also depend on the abstraction level. The most = abstract is surely File_Type, then File_Mode comes next while not = necessarily, then Field and Number_Base, depends if these specialisation= s = are required. If something is said not that much important, it should be removable, or= = else, what means not important? If that's not important in some case whi= le = important for some others, then there should be different child packages= = or parallel hierarchy (with one withing another). Seems to be basic desi= gn = rules. -- = =E2=80=9CSyntactic sugar causes cancer of the semi-colons.=E2=80=9D [1] =E2=80=9CStructured Programming supports the law of the excluded muddle.= =E2=80=9D [1] [1]: Epigrams on Programming =E2=80=94 Alan J. =E2=80=94 P. Yale Univers= ity