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 X-Received: by 2002:a02:5696:: with SMTP id u22-v6mr112474jad.5.1530068322087; Tue, 26 Jun 2018 19:58:42 -0700 (PDT) X-Received: by 2002:aca:8d2:: with SMTP id 201-v6mr441034oii.0.1530068321944; Tue, 26 Jun 2018 19:58:41 -0700 (PDT) Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!feeder.eternal-september.org!news.linkpendium.com!news.linkpendium.com!news.snarked.org!border2.nntp.dca1.giganews.com!nntp.giganews.com!u78-v6no1371989itb.0!news-out.google.com!p13-v6ni1561itf.0!nntp.google.com!d7-v6no1382627itj.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: comp.lang.ada Date: Tue, 26 Jun 2018 19:58:41 -0700 (PDT) In-Reply-To: Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=47.185.195.62; posting-account=zwxLlwoAAAChLBU7oraRzNDnqQYkYbpo NNTP-Posting-Host: 47.185.195.62 References: <5e86db65-84b9-4b5b-9aea-427a658b5ae7@googlegroups.com> <878t7u1cfm.fsf@nightsong.com> <776f3645-ed0c-4118-9b4d-21660e3bba4b@googlegroups.com> <87602fbu2g.fsf@nightsong.com> <87po0mziqt.fsf@nightsong.com> <87fu1izfgs.fsf@nightsong.com> <878t75nwad.fsf@adaheads.home> <15b6f89f-997b-45ac-86b4-2e614bb624c2@googlegroups.com> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <6aeeb91c-73b5-412e-bef3-8bf45eb94484@googlegroups.com> Subject: Re: Ada Successor Language From: "Dan'l Miller" Injection-Date: Wed, 27 Jun 2018 02:58:42 +0000 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Xref: reader02.eternal-september.org comp.lang.ada:53362 Date: 2018-06-26T19:58:41-07:00 List-Id: On Tuesday, June 26, 2018 at 9:28:42 PM UTC-5, Dan'l Miller wrote: > On Tuesday, June 26, 2018 at 5:03:13 PM UTC-5, Dan'l Miller wrote: > > Then you are an unable to foresee slicing situations as Bjarne Stroustr= up was. Bjarne should not be > > one's role model as a language designer. >=20 > Typo: Then you are /as/ unable to foresee =E2=80=A6 >=20 > Btw, what I am ultimately saying about the compiler automagically what ru= les say is the correct strong > type's tag in a given situation (which might differ from what the program= mer thought would occur) > violates a fundamental premise of Ada: source code whose behavior is obv= ious to human beings. C++ > is the ultimate language for voluminous automagical behavior that has not= one iota of overt source code.=20 > Ada absolutely does not need more of that, or at least in the C++ school = of thought. >=20 > This comes down to a cognitive dimensions of notations issue. C++ priori= tizes automagical > disembodied-fairies-without-source-code over overt source code, as some s= ort of variant of > less-is-more. (C++ has 2 cryptosyntaxes: 1) the symbols on the surface = and 2{ the implicit unstated > automagical disembodied-fairies-without-source-code floating around the p= rogrammer as a cloud of > ghosts in the [compiler-]machine.) Ichbiah's Ada83 is the utmost of =E2= =80=98The program does exactly what the > source code overtly states that it does=E2=80=94nothing more, nothing les= s=E2=80=99. > https://en.wikipedia.org/wiki/Cognitive_dimensions_of_notations >=20 > 'Class with tags-external-to-untagged-types is a C++-esque automagical > disembodied-fairy-without-source-code, bringing one of the kinds of crypt= o syntax #2 into Ada. > No thank you: we already have one C++; we don't need another one. Or in a word: homociconicity https://en.wikipedia.org/wiki/Homoiconicity Ada (especially Ichbiah's Ada83) is vastly closer to the homoiconicity end = of the spectrum: what you overtly see in the source code is the program th= at you get at run-time. Ada95's 1) tagged-records' dispatch, 2) limited nonprivate types, and 3) controlled types' finalization are all incremental (but tolerable) steps in the direction of C++'s degree = of anti-homoiconicity. With zeal, C++ flagrantly eschews homoiconicity as homoiconicity would get = in the way of many of its vast quantities of automagical implicit incantati= ons a) that often have absolutely no source-code representation whatsoever or b) that have only oblique/cryptic appearance in the source code as steering= the direction that the disembodied-fairies-without-source-code fly.