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=unavailable autolearn_force=no version=3.4.4 Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!feeder.eternal-september.org!nntp-feed.chiark.greenend.org.uk!ewrotcd!newsfeed.xs3.de!io.xs3.de!news.jacob-sparre.dk!franka.jacob-sparre.dk!pnx.dk!.POSTED.rrsoftware.com!not-for-mail From: "Randy Brukardt" Newsgroups: comp.lang.ada Subject: Re: Visibility of Indexing aspects Date: Thu, 26 Jul 2018 14:09:52 -0500 Organization: JSA Research & Innovation Message-ID: References: <40d568da-4715-42de-8e28-98da39a5c974@googlegroups.com> <34f499f7-020f-4dcc-adad-0ab1113386d1@googlegroups.com> <9d69e7b5-6b2d-4607-9f7b-affa78c41620@googlegroups.com> <41c711cb-0300-4a41-93d3-e69297ae1945@googlegroups.com> <42de4aa3-9e7c-44b8-aa84-712cc7ce03c6@googlegroups.com> <9b6b6f10-5956-4a19-83f5-c1c015c62602@googlegroups.com> <8720f70a-59b1-4297-b2fc-78804ec88b7b@googlegroups.com> <756cb66b-1ef8-4d9e-b679-118b6c59e89c@googlegroups.com> <1392b483-af72-4dbe-ad51-bd703405b7a8@googlegroups.com> <3eebe2fb-f066-4248-9b2f-1db32497fd82@googlegroups.com> Injection-Date: Thu, 26 Jul 2018 19:09:53 -0000 (UTC) Injection-Info: franka.jacob-sparre.dk; posting-host="rrsoftware.com:24.196.82.226"; logging-data="8387"; mail-complaints-to="news@jacob-sparre.dk" X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2900.5931 X-RFC2646: Format=Flowed; Original X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.7246 Xref: reader02.eternal-september.org comp.lang.ada:53969 Date: 2018-07-26T14:09:52-05:00 List-Id: "Dan'l Miller" wrote in message news:aeeb29f7-86d1-4b18-9312-03e1239f22b0@googlegroups.com... On Wednesday, July 25, 2018 at 7:12:24 PM UTC-5, Randy Brukardt wrote: > "Dan'l Miller" wrote in message > news:3eebe2fb-f066-4248-9b2f-1db32497fd82@googlegroups.com... ... >> ... >> >The _LRM_'s forcing of {Reference, Reference_Holder, Container_Array, >> >...} >> >to be public declarations ... >> >> ...is perfectly fine -- there's nothing wrong or dangerous with using >> them >> directly. Indeed, "indexing" is just a shorthand for a longer call >> involving >> Reference -- you're always allowed to make the longer call > >Yeah, unyieldingly demanding that unnecessary feature is the root-cause of >the >violation of Steelman 3-5B detailed far below. (1) No one reads any of your babble, simply because it is way too long for a "fun", non-required site. Say something consisely and stop! I struggle with this myself at times, but you're 10 times worse (which I didn't think was possible. :-) (2) Steelman is only relevant (if it is relevant at all) for evaluating a new language design. Ada hasn't been a new design for decades -- compatibility with existing code and existing Ada principles is what matters today. I cannot recall the last time that Steelman even came up in language discussions - there hasn't been a significant consideration of it in decades. (In part because it hasn't been updated in decades -- it predates OOP, for instance.) (3) It's most important for a language to be self-consistent, rather than following some external model of purity. And it's definitely possible to hide too much. (4) Ada doesn't really have user-defined indexing; it has some syntactic sugar that gives the illusion of user-defined indexing. The rules (static and dynamic) for it all stem from the underlying mechanism; it has rather little on its own. Languages with true user-defined indexing existed before Ada; Ichbiah must have intentionally chosen not to include that feature. A language defined today around such a feature would be very different than Ada -- it probably wouldn't even have built-in array type. (An array is just another kind of container, and it's very inconsistent to have it be wildly different in definition than other containers.) Ada has so many bizarre rules around the use of built-ins that trying to reproduce it in a consistent way would lead to madness (dozens of special-case rules that exist only for compatibility). [Dmitry is right that it could be done, in the sense that anything can be done given enough money and/or desire. But it wouldn't make any realistic sense to be done.] I need to write that long-thought about blog entry outlining how I would change Ada given a blank slate. It would be something on the line of what Dmitry suggests, but almost all aspect-based (explicit interfaces are useless IMHO). Randy.